预处理之条件编译

2018-07-16  本文已影响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。

上一篇 下一篇

猜你喜欢

热点阅读