本文主要介绍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配合使用,判断某个宏是否被定义

#include <stdio.h>#define MAXIMUM(x,y)(x>y)?x:y
#define MINIMUM(x,y)(x>y)?y:x
int main(){int a=10;
int b=20;#define MAX //定义一个预处理宏MAX//如果这个宏定义被定义,则执行随后语句
#ifdef MAXprintf("The lager one is %d\n", MAXIMUM(a,b));
#elseprintf("The lower one is %d\n", MINIMUM(a,b));
#endif#ifdef MINprintf("The lower one is %d\n", MINIMUM(a,b));
#elseprintf("The lager one is %d\n", MAXIMUM(a,b));
#endif#undef MAX //取消宏定义MAX#ifdef MAXprintf("The lager one is %d\n", MAXIMUM(a,b));
#elseprintf("The lower one is %d\n", MINIMUM(a,b));
#endif#define MIN//定义一个预处理宏MIN
#ifdef MINprintf("The lower one is %d\n", MINIMUM(a,b));
#elseprintf("The lager one is %d\n", MAXIMUM(a,b));
#endif}

49.#if #ifdef 和#ifndef 的综合应用相关推荐

  1. #define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif、defined解释

    #define.#undef.#ifdef.#ifndef.#if.#elif.#else.#endif.defined. #define            定义一个预处理宏 #undef     ...

  2. C语言的条件编译#if, #elif, #else, #endif、#ifdef, #ifndef

    C语言的条件编译#if, #elif, #else, #endif.#ifdef, #ifndef 有些程序在调试.兼容性.平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件,这当然可 ...

  3. #ifdef,#ifndef,#define,#endif解析(原)

    我们在看一些开源的源代码的时候,经常会看到如下情景: # if defined(_PTHREADS) && !defined(_NOTHREADS) # define __STL_PT ...

  4. C语言#if、##ifdef、#ifndef的用法详解,C语言条件编译详解

    假如现在要开发一个C语言程序,让它输出红色的文字,并且要求跨平台,在 Windows 和 Linux 下都能运行,怎么办呢? 这个程序的难点在于,不同平台下控制文字颜色的代码不一样,我们必须要能够识别 ...

  5. Makefile中的条件判断(ifeq、ifneq、ifdef、ifndef)

    以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除. 一.条件判断的关键字 日常使用 Makefile 编译文件时,可能会遇到需要分条件执行的情况.比如在一个工程文件中可编译的源文件很多 ...

  6. #ifdef和#ifndef的用法—详细解答

    举一个使用 #ifdef 和 #ifndef 的例子: #ifndef MY_HEADER_H #define MY_HEADER_H// 这里是头文件的内容#endif 这个例子中,#ifndef ...

  7. 预处理指令if、ifdef、ifndef

    #if.#ifdef.#ifndef预处理指令没有使用花括号{},因此需要以#endif作为结束. 对于不满足的代码块会直接被预处理器删除(切记是删除) #include <stdio.h> ...

  8. #ifdef #endif #ifndef 定义+代码详解

    1. 这些代码是什么?属于C/C++中什么类型的词? #ifdef  #endif  #ifndef 属于C/C++预处理指令,常见的预处理指令还包括#include #define #undef # ...

  9. 宏定义、define、defined、ifdef、ifndef、undef总结

    define.defined.ifdef.ifndef.undef的用法都属于预处理部分,所谓预处理是指在进行第一遍扫描(语法扫描和语法分析)之前所做的工作.当对一个源文件进行编译时,系统将自动引用预 ...

最新文章

  1. android post请求_Vue 网络请求框架 axios 使用教程
  2. Could not decode a text frame as UTF-8 的解决
  3. display:inline、block、inline-block
  4. boost::mp11::mp_drop相关用法的测试程序
  5. SAP Spartacus 使用 customized API
  6. python-flask-1
  7. mongodb简单的增删改查
  8. C++ opengl GL_QUAD_STRIP的绘制
  9. 如何迁移home目录
  10. C#:遍历JObject
  11. 【OpenCV学习笔记】【编程实例】二(图像的旋转和翻转)
  12. android 本地广播原理,本地广播原理
  13. mysql5.5连不上主机_mysql5.5主从同步排错
  14. python 学习第十二课
  15. 洛谷P2525 Uim的情人节礼物·其之壱(组合数学/上一个全排列/下一个全排列)
  16. Debian/Ubuntu系统命令终端提示无法定位软件包解决方法
  17. 法语计算机相关书籍,法语网络计算机相关词汇
  18. 车载网络技术——CAN总线基础
  19. Linux就业技术指导(四):企业CDN缓存加速原理解密
  20. 微信域名防封技术,微信域名总是被屏蔽要怎么解决

热门文章

  1. atom编译运行python_在atom中编译python
  2. php声音转换工具,音乐格式转换工具(AudioRetoucher 5)
  3. 关于队里面最菜的在博客打卡第三十九天这件事
  4. 混合 blending
  5. pandas填补缺失值的方法
  6. 传感器:土壤湿度传感器(XH-M214)介绍及stm32驱动代码
  7. java语言中的while、do while、for循环
  8. 四川智汇蓝图科技有限公司的四大网络防火墙技术
  9. java键入时间hhmm_日期-SimpleDateFormat上的Java HH:mm和hh:mm之间的差异
  10. 斐波那契数列 牛客网 python