美文网首页
预处理之条件编译

预处理之条件编译

作者: 春风依旧 | 来源:发表于2018-07-16 01:46 被阅读11次

    定义:有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句

    1、条件编译的符号:

    指令                                    用途

    #                          空指令,无任何效果

    #include              包含一个源代码文件

    #define              定义宏

    #undef                取消已定义的宏

    #if                      如果给定条件为真,则编译下面代码

    #ifdef                如果宏已经定义,则编译下面代码

    #ifndef              如果宏没有定义,则编译下面代码

    #elif                    如果前面的#if给定条件不为真,当前条件为真,则编译下面代码

    #endif                结束一个#if……#else条件编译块

    #error                  停止编译并显示错误信息

    2、不同的情况:

    情况1:

    #ifdef _XXXX

    ...程序段1...

    #else

    ...程序段2...

    #endif

    这表明如果标识符_XXXX已被#define命令定义过则对程序段1进行编译;否则对程序段2进行编译。

    情况2:

    #ifndef _XXXX

    ...程序段1...

    #else

    ...程序段2...

    #endif

    这里使用了#ifndef,表示的是if not def。当然是和#ifdef相反的状况(如果没有定义了标识符_XXXX,那么执行程序段1,否则执行程序段2)

    情况3:

    #if 常量

    ...程序段1...

    #else

    ...程序段2...

    #endif

    这里表示,如果常量为真(非0,随便什么数字,只要不是0),就执行程序段1,否则执行程序段2。

    我认为,这种方法可以将测试代码加进来。当需要开启测试的时候,只要将常量变1就好了。而不要测试的时候,只要将常量变0。

    相关文章

      网友评论

          本文标题:预处理之条件编译

          本文链接:https://www.haomeiwen.com/subject/xlhuuttx.html