C语言中的typedef跟define的区别

今天用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*

后续继续补充......

原文地址:https://www.cnblogs.com/arvintang/p/5109910.html