C++条件编译:#ifdef
本文主要介绍c++中条件编译
相关的预编译指令
,包括 #define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif、defined。
#define 定义一个预处理宏
#undef 取消宏的定义
#if 编译预处理中的条件命令,相当于C语法中的if语句
#ifdef 判断某个宏是否被定义,若已定义,执行随后的语句
#ifndef 与#ifdef相反,判断某个宏是否未被定义
#elif 若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,相当于C语法中的else-if
#else 与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else
#endif #if, #ifdef, #ifndef这些条件命令的结束标志.
defined 与#if, #elif配合使用,判断某个宏是否被定义
条件编译
条件编译是根据实际定义宏(某类条件)进行代码静态编译的手段。可根据表达式的值或某个特定宏是否被定义来确定编译条件。
最常见的条件编译是防止重复包含头文件的宏,形式跟下面代码类似:
1 #ifndef ABCD_H
2 #define ABCD_H
3
4 // ... some declaration codes
5
6 #endif // #ifndef ABCD_H
在实现文件中通常有如下类似的定义:
1 #ifdef _DEBUG2 3 // ... do some operations4 5 #endif6 7 #ifdef _WIN328 9 // ... use Win32 API
10
11 #endif
这些都是条件编译的常用情境。
C++条件编译:#ifdef相关推荐
- 条件编译#ifdef的妙用详解
本文主要介绍c语言中条件编译相关的预编译指令,包括 #define.#undef.#ifdef.#ifndef.#if.#elif.#else.#endif.defined. #define ...
- 条件编译#ifdef 和#endif
转于http://blog.csdn.net/fly_yr/article/details/39964035 C++中 #ifdef 和#endif的作用 一般情况下,源程序中所有的行都参加编译.但是 ...
- C语言中-条件编译#ifdef的妙用详解_透彻
本文主要介绍c语言中条件编译相关的预编译指令,包括 #define.#undef.#ifdef.#ifndef.#if.#elif.#else.#endif.defined. #define ...
- C语言 (条件编译#ifdef、#ifndef) (#if 常量,#if 1,#if 0)的用法
当屏蔽掉大块代码时,使用"#if 0"比使用"/**/"要好,因为用"/**/"做大段的注释要防止被注释掉的代码中有嵌套的"/** ...
- uni-app开发中的#ifdef MP是什么意思?条件编译
跨端兼容https://uniapp.dcloud.io/platform uni-app 已将常用的组件.JS API 封装到框架中,开发者按照 uni-app 规范开发即可保证多平台兼容,大部分业 ...
- 预处理器预处理变量头文件保护条件编译
[常见的预处理功能] #include 头文件保护符 条件编译 [预处理器] 编译之前执行的一段程序,可以部分地改变我们所写的程序 举个例子:当预处理器看到#include标记时就会用指定的头文件的内 ...
- c语言常用的条件编译,C语言条件编译
使用与平台有关的C语言函数,可能会使得程序不具有可移植性.比如Socket编程.多线程编程等是与平台有关的. 若想将程序做成平台无关的就需要用到与平台相关的条件编译. 编译器 GCC #ifdef _ ...
- uniapp 条件编译的使用
什么是条件编译 条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台. 一.写法:以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #en ...
- uniapp条件编译
写法:以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾. #ifdef:if defined 仅在某平台存在 #ifndef:if not defined ...
- uni-app条件编译 解决各端差异
跨端兼容 uni-app 已将常用的组件.JS API 封装到框架中,开发者按照 uni-app 规范开发即可保证多平台兼容,大部分业务均可直接满足. 但每个平台有自己的一些特性,因此会存在一些无法跨 ...
最新文章
- 2.JS执行上下文和变量对象
- vue文件快速生成模板代码
- Cannot evaluate tensor using 'eval' No default session is registered错误问题的解决
- T6 s1 day19
- C++调用Asprise OCR识别图片
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- 让Vue也可以使用Redux
- 剑指 Offer II 061. 和最小的 k 个数对
- 编写属于自己的Python第三方库
- 芝诺数解|【三】前程未可量,奋发而为之——国产动画电影探索之路
- java计算时间差 (日时分秒)
- 不间断:即使被刺破,新的软电子设备也不会损坏
- Java job interview:项目架构研发京东大数据价值最大化的应用实践
- 编码器SRT协议三种模式(listener, caller, rendezvous)简介
- 2017.05.22 房多多 曾熙闭门会
- 有道云笔记markdown教程
- (二)提升树模型:Xgboost原理与实践
- 百度地图坐标查询(真实坐标)
- TSLint 配置规则
- c语言冯诺依曼原理,冯诺依曼型计算机的基本原理是什么
热门文章
- libstdc++.so, needed by ../../../rknn_api/arm64-v8a/librknn_api.so, not found
- numpy批量iou
- 基于视觉Transformer的目标检测
- Python中双冒号的作用[::]
- opencv 直线检测
- pyqt改变背景颜色
- pil拷贝,剪切,缩放
- 青龙羊毛——放羊娃(教程)
- 网球hcc http catcher使用方法以及规则分享
- PMP-【第15章 PMP考试的难点与易点】2021-2-17(304页-312页)【完】