注:基础知识学习积累所用,参考网上资料,后续扩展。
【定义】#define是预处理指令,在编译预处理时进行简单的文本替换,不做类型检查。
【格式】#define KEY value, 编译会把所有KEY文本替换为value.
【目的】1. #ifndef和 #define组合,一般用于头文件中,用以实现防止多个文件对此同一个头文件的重复引用。
#ifndef <标识>
#define <标识>
……
// include or define sth.
……
#endif
2.#ifdef和 #define组合,可以实现加入自己需要的模块(源文件).
#ifdef MYSELF_H
#include “myself.c”
#endif
3.#define可以进行宏定义常量
可以对一些常见的变量,字符串等,进行宏定义,系统在编译期间,就会自动替换。
1. #define只带一个参数(例#define JDK_1.4)
定义宏,并在预处理过程中将其替换为空字符串(即删除),表示已定义JDK_1.4, 通过#ifdef判断返回true。
这样做主要是为了标记某些内容,使程序阅读者能够清楚标记表明的意义,同时又不影响被编译的源代码。
通常这些标记能被条件编译的预处理命令#ifdef、#ifndef检测到, 可在别处引用该文件进,用此空的宏作条件判断。
2. #define Conn(x,y) x##y
x##y, 表示x连接y,举例说: