1. c语言中宏定义的使用宏定义是预编译功能的一种, 预编译又称为预处理, 是为编译做的预备工作的阶段。
处理#开头的指令, 比如拷贝 #include 包含的文件代码,#define宏定义的替换,条件编译等。
使用宏定义的好处:
使用宏定义的好处:可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。
宏定义的特点:
可以用#undef命令终止宏定义的作用域
宏定义作用域为其后的程序,通常在文件的最开头
宏定义不分配内存,变量定义分配内存
2. 宏定义作用:
<1> 头文件的定义
#ifndef PUBLIC_H
#define PUBLIC_H
头文件内容
#endif
<2>重新定义数据类型,防止由于不同平台或者编译器,产生的数据类型字节差异,便于移植
typedef unsigned char uint8
<3>使用宏跟踪调试
ANSI预定义了5个宏名
_LINE_ 表示当前执行代码行数
_FILE_ 表示执行文件
_DATE_ 表示源文件被翻译成代码的日期
_TIME_ 示源文件被翻译成代码的具体时间
3.宏定义中#和##的使用
<1>用#将宏参数变为一个字符串,##将两个宏参数连接起来
例如:
#define ADDR(addr) #adddr //当主函数调用时,ADDR(jiangsu); 则输出为jiangsu
#defineADDR(a,b) a##sheng##b //
ADDR(jiang,su); //输出为jiangshengsu;