条件编译#if
来源:互联网 发布:钢铁力量里孔雀的数据 编辑:程序博客网 时间:2024/06/16 00:09
1、为什么需要条件编译
客户的需求在不停地发生变化,一会儿需要这个功能,一会儿不需要这个功能。我们可以使用条件编译来方便地裁剪功能。
2、条件编译语句#if
条件编译语句#if的形式是
1 #if expression2 ...3 #elif expression4 ...5 #elif expression6 ...7 #else8 ...9 #endif
其中#elif分支语句是可选的,#else分支语句也是可选的。
如果expression的逻辑值为“真”,则在预编译阶段,保留这段代码。如果逻辑值为“假”,则在预编译阶段删除这段代码。
3、在条件编译的基础上使用defined()函数
形式为:
1 #if defined(some_macro)2 some statements
defined()用来检测some_macro这个宏是否定义,如果定义,则返回“真”,否则,返回“假”。根据返回的逻辑值,就可以决定是否在预编译阶段删除与保留{some statements}
tip1: #if defined(some_macro) 可以简写为 #ifdef
tip2: #if !defined(some_macro)与#if defined(some_macro)行为相反,亦可简写为#ifndef
tip3: don't forget #endif
#ifdef 和 #if defined 的区别在于,后者可以组成复杂的预编译条件,比如
#if defined (AAA) && defined (BBB)
xxxxxxxxx
#endif
#if defined (AAA) || VERSION > 12
xxxxxxxxx
#endif
而#ifdef 就不能用上面的用法,也就是说,当你要判断单个宏是否定义时#ifdef 和 #if defined 效果是一样的,但是当你要判断复杂的条件时,只能用 #if
1 0
- 条件编译#if #ifdef
- #if #define条件编译
- 条件编译#if语句
- 条件编译#if
- 条件编译#if
- #ifdef,#if等条件编译
- 条件编译的使用...#if...
- 条件编译 #If...Then...#Else
- 使用Conditional特性代替#if条件编译
- java中模拟#if条件编译
- 条件编译(#ifdef #else #endif #if)
- 条件编译(#ifdef #else #endif #if)
- 条件编译 #if, #elif, #else, #endif
- 条件编译 #if #endif #ifdef等
- 预编译之条件编译指令#if /#ifdef/#if defined
- 条件判断语句(if...else)与条件编译(#if .... #else ... #endif)
- 条款4:使用Conditional特性代替#if条件编译
- 条款4:使用Conditional特性代替#if条件编译
- C#图片截取块并画在画板上带白边框带添加文字,截取支付宝的付款码
- MyCat生产实践--一致性hash分片&扩容
- The Log: What every software engineer should know about real-time data's unifying abstraction
- 架构设计之Spring-Session分布式集群会话管理
- 一次泛微OA宕机事件的解决。
- 条件编译#if
- Android返回键退出程序的两种实现
- Vue框架引入JS库的正确姿势
- NVME概述
- ActiveMQ发布订阅模式
- 关于 static 关键字
- uboot sf 命令用法
- JAVA实现的微信扫描二维码支付
- 网络字节序变成点分十进制,一个一个字节的输出log