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

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

#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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C中的预编译宏定义 2009-02-10 作者: infobillows 来源:网络 在将一个C源程序转换为可执行...
    白水灬煮一切阅读 1,652评论 0 5
  • 在我们的工程中,很多时候只希望在满足一定条件的时候才进行编译,这是就需要用到条件编译。 #if #elif #el...
    JerryLMJ阅读 10,246评论 0 14
  • 目录 一.预处理的工作方式... 3 1.1.预处理的功能... 3 1.2预处理的工作方式... 3 二.预处理...
    朱森阅读 1,432评论 0 2
  • 有些程序在调试、兼容性、平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件,这当然可以通过变量设置...
    hehtao阅读 1,187评论 0 11
  • 从快餐店里出来,已经是六点多,两周前找的一个兼职,虽然有点累。但还算可以,老板人挺好的,对自己也挺照顾。他是本市人...
    爱吃肉的和尚阅读 317评论 0 0