条件编译命令

条件编译命令

《进阶》:

作用:

通常情况下,源程序文件中的所有语句行都需要参与编译,并生成到目标文件中。如果源程序需要根据特定的条件决定一部分源代码是否参与编译,则需要条件编译预处理命令。

分类:

C语言的条件编译预处理命令主要有三种形式

  • #if指令
  • #ifdef指令
  • #ifndef指令

  • #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 版权协议进行许可,转载请附上原文出处链接及本声明。

    本文链接https://mobrook.cn/index.php/kanni-47/

    上一篇:

    下一篇: