1.#define
#define的作用是定义宏。在编译过程中所有出现宏名处都用宏定义替代。
1.1 无参数宏
1.1.1 格式
#define 宏名 表达式
宏名一般采用大写字母。表达式可以是数字、字符、字符串、计算式。
1.1.2 举例
#define MAX_SIZE 100
#define NUMBER 3+4
1.2 有参数宏
1.2.1 格式
#define 宏名(形参表) 表达式
1.2.2 举例
#define MAX(a,b) (a>b)?a:b
在后续的程序中,可以使用直接函数MAX(a,b)
1.3 注意事项
a. 必须写在函数体外
b. 不需要加分号
c. 可用#undef 结束其作用域
2.#ifdef 与 #if defined
由于c或c++中头文件可以互相包含,为避免重复定义,使用#ifdef(#ifndef)来规避。
#ifndef XXX
#define XXX
...
程序体
...
#endif
有时候需要使用#ifdef进行分支控制
#ifdef A
do job1...
#else
#ifdef B
do job1...
#else
do job2...
#endif
#endif
上述分支控制较为繁琐,可以使用#if defined(#if !defined)简化
#if defined A || defined B
do job1...
#else
do job2...
#endif
版权声明:本文为Jet__P原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。