【C/C++】typdef与#define的用法与区别
文章目录
1、总结:#define与typedef的差异
1.1 两者执行时间的差异
- #define是宏定义,发生在预处理阶段,即编译之前.它只进行简单而机械的替换,而不进行任何检查.
- typedef在编译阶段有效.由于是在编译阶段,因此typedef有类型检查的功能.
1.2 两者作用的差异
-
typedef用于给一个已经存在的类型一个别名
-
#define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查
1.3 写法上的差异
-
typedef语句以;结尾,但是#define语句末尾处无
-
预处理的语句(#)的结尾都没有;号,比如#include <stdio.h>
2、typedef的用法
在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:
typedef int INT;