作者cat99961 (阿汤)
看板C_and_CPP
标题[问题] 有关於typedef省略的问题?
时间Mon May 11 14:37:18 2020
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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1589179040.A.439.html
1F:推 b0920075: insert node 那边你把 btree 当 data type 了吧 05/11 14:45
2F:→ shadow0326: 删掉之後btree就是一个variable,不是一个type 05/11 14:45
3F:→ shadow0326: 所以11行就gg 05/11 14:46
4F:推 chuegou: 就...unknown type name ‘btree’ 没有btree这个型别阿 05/11 21:08
非常感谢你们,我明白了..
※ 编辑: cat99961 (1.168.193.69 台湾), 05/11/2020 21:21:31