关于define 和 typedef 的两个问题
#definepin(int *)pina, b;
typedefpin(int *);
pina, b;
老师代码1和代码2编译通不过呀
代码1改成
#definepinint *
pina;
pin b ;
可以通过
代码2改成
typedefint*pin
pina, b;
可以通过;
求教到底什么问题 define是宏替换,就是简单的替换。
typedef是类型取别名。 #definepin(int *)
相当于将代码中的所有 pin 替换为 (int *)
pina, b;
那么这一句被翻译为 (int*) a, b;
编译器表示看不懂啊~,尤其是b是什么,编译器翻译不了,所以不通过
typedefpin(int *);
相当于给pin起一个别名为(int *)
然而前提是编译器得认识 pin 是个什么东西,所以一般用typedef都会将已知的变量取别名,比如
typedef struct Student{..}STD;
#define 和 typedef所定义的名称和实际内容的位置正好相反。
#define新名称内容
typedef 内容 新名称
页:
[1]