1、#define
2、define 与typedef区别
- #开头的都是预处理命令
- 末尾不需要加分号,如果有分号,替换时会连同分号一起替换
- define只是做简单的文本替换,但若是以字符串的形式被调用,则不会进行替换。例如:#define X 25*12 printf(" I X O");其中X不会进行替换
- #define 的作用域是从宏定义开始,到源程序结束,若想提前结束,使用#undef X
#define P1 int *
- 处理时间:define是在预处理阶段完成替换;typedef是在编译时进行处理
- typedef是对类型说明符的重命名,而define只是简单的代换;
typedef int * P2
P1 a,b; //相当于 int * a,b; a是int 型指针,而b是int整数
P2 a,b; //相当于 int *a,*b; a、b都是int型指针
3、define用法
- #define 宏名(形参) 函数实现 注意:宏名与(形参)之间不能有空格
- 形参不占内存空间
- 当宏定义有多行,在每行结尾加“/”,最后一行不需要