当屏蔽掉大块代码时,使用"#if 0"比使用"/**/"要好,因为用"/**/"做大段的注释要防止被注释掉的代码中有嵌套的"/**/",这会导致注释掉的代码区域不是你想要的范围,当被注释掉的代码很大时容易出现这种情况,特别是过一段时间后又修改该处代码时更是如此。

文章目录

  • 不嵌套情况
    • 1. 情况1:
    • 2.情况2:
    • 3.情况3:
  • 二、 嵌套情况
    • 1、情况1

不嵌套情况

1. 情况1:

#ifdef _XXXX...程序段1...#else...程序段2...#endif

这表明如果标识符_XXXX已被#define命令定义过则对程序段1进行编译;否则对程序段2进行编译。

2.情况2:

#ifndef _XXXX...程序段1...#else...程序段2...#endif

这里使用了#ifndef,表示的是if not def。当然是和#ifdef相反的状况(如果没有定义了标识符_XXXX,那么执行程序段1,否则执行程序段2)。

3.情况3:

#if 常量...程序段1...#else...程序段2...#endif

这里表示,如果常量为真(非0,随便什么数字,只要不是0),就执行程序段1,否则执行程序段2。

二、 嵌套情况

1、情况1

#if 常量a...程序段1...
#else#if 常量b...程序段2...#else...程序段3...#endif#endif

这里表示,如果常量a为真(非0,随便什么数字,只要不是0),就执行程序段1。当常量a为0,常量b为真时,执行程序段2;

当常量a为0,常量b为0时,执行程序段3;

参考文章:#if 0/#if 1用法

C语言 (条件编译#ifdef、#ifndef) (#if 常量,#if 1,#if 0)的用法相关推荐

  1. c语言常用的条件编译,C语言条件编译

    使用与平台有关的C语言函数,可能会使得程序不具有可移植性.比如Socket编程.多线程编程等是与平台有关的. 若想将程序做成平台无关的就需要用到与平台相关的条件编译. 编译器 GCC #ifdef _ ...

  2. C语言中-条件编译#ifdef的妙用详解_透彻

    本文主要介绍c语言中条件编译相关的预编译指令,包括  #define.#undef.#ifdef.#ifndef.#if.#elif.#else.#endif.defined. #define     ...

  3. uni-app条件编译:#ifdef #ifndef #endif

    uni-app条件编译:#ifdef #ifndef #endif 语法: // #ifdef %PLATFORM% 这些代码只在该平台编译 // #endif #ifdef : if defined ...

  4. C语言中宏定义宏编译的使用#if,#ifdef,#ifndef,#elif,#else,#endif,defined使用详解,可以实现和if else一样的效果

    #define            定义一个预处理宏 #undef            取消宏的定义 #if                   编译预处理中的条件命令,相当于C语法中的if语句 ...

  5. 条件编译#ifdef的妙用详解

    本文主要介绍c语言中条件编译相关的预编译指令,包括  #define.#undef.#ifdef.#ifndef.#if.#elif.#else.#endif.defined. #define     ...

  6. c语言条件编译的例子,C语言条件编译分析实例

    C语言条件编译分析实例 1.利用#ifdef / #endif 将程序功能模块包括进去,以向某用户提供该功能. 在程序首部定义#define HNLD: #ifdef HNLD include&quo ...

  7. c语言 条件编译注释,c语言的预处理/条件编译,最全整理看这里

    ​语言的编译过程中第一步进行的就是预编译了,预编译中就是执行#开头的语句,这些处理就是本篇总结的知识点,预处理和条件编译. 通俗的讲预处理就是编译器自动的帮我们上去整理一遍代码,它依据的规则(我们交代 ...

  8. 【Scripts系列】之Makefile中条件分支ifeq/else/endif/else ifeq/ifneq/ifdef/ifndef用法详解

    DATE: 2019-2-22 前言       条件分支的用法在任何编程语言和脚本以及逻辑中都广泛使用.前文讲述过C语言中预处理的条件编译#ifdef/#if/#elif/#else/#endif用 ...

  9. #if, #ifdef, #ifndef, #else, #elif, #endif的用法

    #ifdef的用法 灵活使用#ifdef指示符,我们可以区隔一些与特定头文件.程序库和其他文件版本有关的代码. 代码举例:新建define.cpp文件 #include "iostream. ...

最新文章

  1. Blender纹理基础学习视频教程 CGCookie – Fundamentals of Texturing in Blender
  2. WCF关于svcutil生成关于TCP绑定出现 元数据包含无法解析的引用:“net.tcp://127.0.0.1:9999/xxxx/”的解决方案...
  3. 生成树的计数 Matrix-Tree(矩阵树)定理
  4. PyCharm——turtle库的画布悬停解决方案
  5. 女程序员被阿里录取工资二万六,辞职时被领导挽留:给你四万留下
  6. 任意整数分频(图文并茂)
  7. 《 Python树莓派编程》——2.7 总结
  8. matlab 归一化_机器学习中如何用Fscore进行特征选择(附Matlab代码)
  9. C#.NET DataGridView 让部分单元格变成只读的例子程序
  10. mac的终端通过ssh远程连接Linux服务器
  11. 适配器模式之享元模式
  12. 6.0后,全局悬浮窗或者弹窗不显示的解决办法
  13. Tomcat下载及配置(IDEA)
  14. Java例15.13——使用MVC结构计算三角形面积
  15. SVCHOST启动服务实战
  16. 千呼万唤始出来,犹抱琵琶半遮面——python变量和数据类型
  17. 植物大战僵尸对战版(Android)
  18. R语言进行中文分词和聚类
  19. Adlik在深度学习异构计算上的实践
  20. 上云安全建设之CDN安全防护

热门文章

  1. android面试题总结加强版
  2. 选购个人计算机小结,计算机实训小结精选 .doc
  3. 前端能读取压缩包内容吗?_解决前端多环境部署的痛点
  4. 华为云客户端_效果图云渲染已成趋势,云渲染如何选择?
  5. 【MM配置】Batch Determination 批次决定
  6. expdp / impdp 用法详解
  7. ABAP RANGE 实现 SELECTION-OPTION 功能
  8. SAP FI配置关键点
  9. 项目经理的十二条规则
  10. 编写一个函数实现从 1 到 n 共 n 个数的累加_leetcode306_go_累加数