C语言:预处理
1、宏定义
用于将一个标识符定义为一个字符串
一般情况下,宏定义需放在程序的开头,函数定义的外面,有效范围从宏定义语句开始至源文件结束。
1.1 不带参数的宏定义
语法格式:#define 标识符 字符串
#define:用于标识一个宏定义
标识符:指所定义的宏名
字符串:指宏体,可以是常量、表达式等。
注意:
(1)如果宏定义中的字符串中出现运算符,则需要在合适的位置加上括号
(2)宏定义末尾不加分号。
(3)#undef 用于取消#undef后的宏定义
1.2 带参数的宏定义
语法格式:#define 标识符(形参表) 字符串
形参表:由一个或多个形参组成,当多于一个形参时,形参之间用逗号分隔。
2、条件编译
2.1 #if/#else/#endif指令
语法格式:
#if 常数表达式
程序段1
#else
程序段2
#endif
条件为真编译程序段1,条件为假编译程序段2.
2.2 #ifdef指令
用于判断某个宏是否被定义
语法格式:
#ifdef 宏名
程序段1
#else
程序段2
#endif
如果宏被定义则执行程序段1,如果宏未被定义则执行程序段2
2.3 #ifndef
用于确定某一个宏是否未被定义
语法格式:
#ifndef 宏名
程序段1
#else
程序段2
#endif
如果宏未被定义则执行程序段1如果已经定义则执行程序段2