今天用C语言练习时涉及到了typedef和define的使用问题,那么他们的区别是啥?这种情况下为什么要用typedef?哪种情况下为什么要用define呢?
学习C的时候的你是否考虑过这个问题呢?
今天我决定梳理一下,以备后用。
相同点:
1、都可以给变量起别名
不同点:
1、define定义后可以扩展,而typedef则不可以。
1 //定义完一个整型的数据后补充定义为无符号的
2
3 #define zhengxing int
4 unsigned zhengxing;//正确
5
6 typedef zhengxing int
7 unsigned zhengxing; //错误
#行内代码
1 //定义完一个整型的数据后补充定义为无符号的
2
3 #define zhengxing int
4 unsigned zhengxing;//正确
5
6 typedef zhengxing int
7 unsigned zhengxing; //错误
2、typedef能够连续定义,define则不可以。
#define apple char*
apple val1, val2; //val1 是指针类型 char*, val2 是 char 类型。 typedef apple char*
apple val1, val2; // val1 和 val2 都是指针类型 char*
后续继续补充......