对于宏定义还要说明以下几点:
1. 宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一
种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程
序对它不作任何检查。如有错误,只能在编译已被宏展开后的源程序时发现。
2. 宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。
3. 宏定义必须写在函数之外,其作用域为宏定义命令起到源程序结束。如要终止其作
用域可使用#undef命令。
4.#define 条件编译头文件(.h)可以被头文件或C文件包含;
重复包含(重复定义)由于头文件包含可以嵌套,那么C文件就有可能包含多次同一个头文件,
就可能出现重复定义的问题的。通过条件编译开关来避免重复包含(重复定义)
例如
#ifndef __headerfileXXX__
#define __headerfileXXX__ „ 文件内容„
#endif