C语言自定义类型在结构中遇到问题

img


想请问一下,我这里的代码是哪里出做了,为什么呢?像创建一个树,但是这个类型出错了。我看到其他博主这样定义却没有错

char后面的分号删掉
#define typename char
加了分号的话,实际
typename date;就被转换成 char; date;啦。因为编译器认为typename表示的是char;,而不是char

1.char后面的分号去掉
2.typename是C++的关键字,编辑器可能会误识别,但是用C语言编译是不会出问题的
3.建议使用typedef给变量起别名,格式是:tyoedef + 普通的变量定义,变量名就是对应数据类型的别名,如typedef char typename或typedef int arr[4]

#define基本上和串替换没有区别