用宏变量控制代码的条件编译

2016-05-12  本文已影响248人  AwesomeChen

在源文件中,用宏变量控制代码的条件编译,有如下四个编译控制语句:

#if

#if defined

#ifndef

#ifdef

四个常见编译控制的区别,联系,及用法:

#ifdef 与 #if defined() 是等价的。 适用于判断单个宏是否定义。

#if defined() 可以构成复杂的逻辑判断。

例如

#if defined(TEST1) || defined(TEST2)

xxxxxx

#endif

#if defined(AAA) && VERSION > 3

xxxxx

#endif

#if 后面跟条件表达式, 为真,执行编译,为假,不编译。

#if defined() 就是#if 的一种用法。

#ifndef  和 #if !defined() 等价,用来判断单个宏是否未定义

例如:

#if !defined YA_BUILD_FOR_DEVELOP && !defined YA_BUILD_FOR_TEST && !defined YA_BUILD_FOR_RELEASE && !defined YA_BUILD_FOR_PRERELEASE

#define YA_BUILD_FOR_DEVELOP

//#define YA_BUILD_FOR_TEST

//#define YA_BUILD_FOR_PRERELEASE

//#define YA_BUILD_FOR_HOTFIX

//#define YA_BUILD_FOR_RELEASE//该环境的优先级最高

#endif

上一篇下一篇

猜你喜欢

热点阅读