条件编译命令
《进阶》:
作用:
通常情况下,源程序文件中的所有语句行都需要参与编译,并生成到目标文件中。如果源程序需要根据特定的条件决定一部分源代码是否参与编译,则需要条件编译预处理命令。
分类:
C语言的条件编译预处理命令主要有三种形式
#if指令
作用:
一般形式:
[cc lang="c"]
#if 表达式
程序段1
#else
程序段2
#endif
[/cc]
首先计算表达式的值,如果表达式的值为真,则程序段1参与编译;否则程序段2参与编译。其中#else部分是可选的。
实例:
[cc lang="c"]
#define CHANCE 1
......
#if CHANCE
x++;
#else
x--;
#endif
[/cc]
上面源代码中,语句x++;参与编译。如果将宏定义中的1改为0,则语句x--;参与编译。
#ifdef指令
作用:
一般形式
[cc lang="c"]
#ifdef 宏名
程序段1
#else
程序段2
#endif
[/cc]
如果指定的宏名已经使用#define指令定义过,则程序段1参与编译;否则程序段2参与编译。
实例
[cc lang="c"]
#define CHANCE 1
#ifdef CHANCE
x++;
#else
x--;
#endif
[/cc]
上面源代码中,只要宏名CHANCE已经定义过,则语句x++;参与编译;否则语句x--;参与编译。其中,#else部分是可选的。
#ifndef指令
作用:
一般形式
[cc lang="c"]
#ifndef 宏名
程序段1
#else
程序段2
#endif
[/cc]
如果指定的宏名没有使用#define指令定义过,则程序段1参与编译;否则程序段2参与编译。其中,#else部分是可选的。
版权声明:本文为 溪月阁 | MoBrook 博主「 皓月 」的转载文章,转载自:《C语言程序设计教程/肖磊,陈湘骥主编》P138,遵循用 CC BY-NC-SA 4.0 版权协议进行许可,转载请附上原文出处链接及本声明。