C语言中typedef与define :
typedef 是进行类型定义,编译阶段会进行类型检查。如: typedef void (*fun)(int a,int b)表示定义一个新类型,类型名为fun,它是一个函数指针。简单使用如下:
define是预处理阶段使用的,进行简单的宏替换,如:#define PINT int* 使用PINT a -->(预处理后) int* a, 只是简单的字符串替换。
混淆的时候:
还有作用域问题:define是预处理阶段会将所有的define宏都替换掉,没有范围。而typedef是有范围限制的。