[問題] 有關於typedef省略的問題?
1. #include <stdlib.h>
2. #include <stdio.h>
3. struct tree /* 樹的結構宣告 */
4. {
5. int data; /* 節點資料 */
6. struct tree *left; /* 指向左子樹的指標 */
7. struct tree *right; /* 指向右子樹的指標 */
8. };
9. typedef struct tree treenode; /* 樹的結構新型態 */
10.typedef struct tree *btree; /* 宣告樹節點指標型態 */
/* ---------------------------------------- */
/* 插入二元樹的節點 */
/* ---------------------------------------- */
11. btree insert_node(btree root, int value)
12.{
13. if(root != NULL){
14. if(root->data > value)
15. root->left = insert_node(root->left ,
value);
16. else
17. root->right = insert_node(root->right,
value);
18. return root;
19. }
20. else{ btree newnode;
21.newnode = ( btree ) malloc(sizeof(treenode));
22. newnode->data=value;
23. newnode->left=NULL;
24. newnode->right=NULL;
25. return newnode;
26. }
27. }
我把第10行的typedef struct tree *btree 改成struct tree *btree,就會編譯不過
(unknown type name ‘btree’),但我不明白為什麼,在我的認知裡第10行的
typedef是多餘的,但刪掉後卻編譯不過,為什麼呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.216.34.89 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1589179040.A.439.html
推
05/11 14:45,
5年前
, 1F
05/11 14:45, 1F
→
05/11 14:45,
5年前
, 2F
05/11 14:45, 2F
→
05/11 14:46,
5年前
, 3F
05/11 14:46, 3F
推
05/11 21:08,
5年前
, 4F
05/11 21:08, 4F
非常感謝你們,我明白了..
※ 編輯: cat99961 (1.168.193.69 臺灣), 05/11/2020 21:21:31
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章