起别名typedef
- 结构体起别名:简化 结构体类型名称
- 指针起别名:
- 函数指针类型
- 数组类型
- ...
typedef struct {
int x;
int y;
} Point;
Point p1;
#define
_____指令用来取消宏定义。// undefine
区别 typedef && 宏定义#define && 函数调用
-
typedef在编译时处理 -
宏定义
#define在预编译时处理 -
函数调用 :编译器会处理函数调用语句,但它不会实际执行这些调用。运行时执行调用函数并执行
-
宏替换:因为宏替换是在预处理阶段进行的,此时编译器还没有开始执行代码的语义分析或表达式的求值。仅是直接将代码中的宏名替换,并不会先求表达式的值。