typedef的用法和#define
typedef
C语言支持typedef的机制,它允许为各种数据类型定义新名字,将变量类型重新明的系统关键字,包括三种用法:
1:内建类型
2:结构体类型
3:函数指针
#define
是C语言中的一个宏定义命令(需要注意的是宏不是C语句,结尾不能加“;”,不然会被替换到程序中),可以嵌套,但不可调试有两种格式:一种是不带参数的宏定义,另一种是带参数的宏定义。
两者之间的区别:
都可以用来表示数据类型。
两者是等效的,调用也是一样的。
但是宏定义只是简单的字符串之间的代换,而typedef则可以用来做类型说明符重命名。
使用typedef声明类型可以减少使声明变得又臭又长的危险,尤其是一些复杂的声明,在定义更为复杂的类型名字时,如函数指针或指向数组的指针,使用typedef更为合适,#define无法正确处理指针类型。
例:#define d_ptr_to_char char*
d_ptr_to_char a, b;
正确声明了a,但是b却被声明为一个字符。
仅供参考