条件编译

上代码

// what is the fucking shit.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"#include <Windows.h>
#define VERSION_XZM          1
#define VERSION_HAERBIN      _T("哈尔滨\n")
#define VERSION_TIANJIN      _T("天津\n")
#define VERSION_SHAGNHAI     _T("上海\n")//
//
#define VERSION_01
#define VERSION_02
#define VERSION_03
#define VERSION_04
#define VERSION_05// undef
//
#undef VERSION_01
#undef VERSION_02
#undef VERSION_03
#undef VERSION_04
#undef VERSION_05int _tmain(int argc, _TCHAR* argv[])
{int year = 2018 ;#if VERSION_XZM == 1OutputDebugString(_T("已定义--版本1\n"));
#elif VERSION_XZM == 2OutputDebugString(_T("已定义--版本2\n"));
#elif VERSION_XZM == 3OutputDebugString(_T("已定义--版本3\n"));
#elif VERSION_XZM == 4OutputDebugString(_T("已定义--版本4\n"));
#elif VERSION_XZM == 5OutputDebugString(_T("已定义--版本5\n"));
#endif#ifdef VERSION_HAERBIN  // #if defined VERSION_HAERBINOutputDebugString(VERSION_HAERBIN);
#elif defined VERSION_TIANJINOutputDebugString(VERSION_TIANJIN);
#elif defined VERSION_SHAGNHAIOutputDebugString(VERSION_SHAGNHAI);
#endif#ifndef VERSION_HAERBINOutputDebugString(VERSION_HAERBIN);
#elif defined VERSION_TIANJINOutputDebugString(VERSION_TIANJIN);
#elif defined VERSION_SHAGNHAIOutputDebugString(VERSION_SHAGNHAI);
#endif#if defined  VERSION_01OutputDebugString(_T("已定义--版本01\n"));
#elif defined VERSION_02OutputDebugString(_T("已定义--版本02\n"));
#elif (!defined VERSION_03) || (!defined VERSION_04)OutputDebugString(_T("未定义--版本03和版本04\n"));
#elif !defined VERSION_05OutputDebugString(_T("未定义--版本05\n"));
#endifreturn 0;
}

上图

1.#ifdefVERSION_HAERBIN 和 #if definedVERSION_HAERBIN的功能是一样的

2.#ifdef VERSION_HAERBIN如果定义了VERSION_HAERBIN宏,则

3.#ifVERSION_XZM == 1 如果VERSION_XZM 的值等于1则执行

4.#elif defined VERSION_TIANJIN否则,如果定义了VERSION_TIANJIN宏,则

5.#elif (!definedVERSION_03) || (!definedVERSION_04)否则,如果即没定义VERSION_03也没定义VERSION_04,则

6.#endif结束条件编译

7.如果条件刚开始成立了,就直接结束了

#if 
#elif 
#elif 
#endif

8.忘记了#else了,哈哈

接下来应该记录一些常用的宏定义才是,下篇再说

条件编译#define、#undef、#if、#elif、#elif defined、#elif !defined 、#endif用法相关推荐

  1. c++ 预处理命令 #if, #ifdef, #ifndef, #else, #elif, #endif用法

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

  2. python elif格式_if...elif...else语句格式

    # if...elif...else...语句格式 * 想一想: > if能完成当xxx时做事情 > > if-else能完成当xxx时做事情1,否则做事情2 > > 如 ...

  3. python else和elif,if else elif 用法和区别,elseelif

    if else elif 用法和区别,elseelif 1.If语句:"如果条件为真,执行子句中的代码."始终包含以下部分: if关键字: 条件(即求值为True或False的表达 ...

  4. 预处理命令 宏定义 #define #undef

    预处理命令 源程序中以#开头的行称为预处理指令. 预处理指令并不是C语言的语法成分,而是传给编译程序的指令. 包括: 宏定义 #define #undef 文件包含 #include 条件编译 #if ...

  5. c语言中undef,C/C++中常用的预处理方法 #define #undef #ifdef #endif

    初学C语言时,经常会看见文件起始一句#define PI 3.1415之类的预处理语句,大部分国内教材没有再进一步介绍C其他的预处理语句.下面进行一些总结: define 常规用法 #define m ...

  6. C语言中#if,#if defined ,#ifdef,extern的用法描述

    1.#if 和#ifdef 当asd_eee表达式存在而且,值为ture的时候接续向下执行 例如 #define TARGET_LITTLE_ENDINA 1 #define TARGET_BIG_E ...

  7. c语言extern_C语言中#if,#if defined ,#ifdef,extern的用法描述

    本文来自网络,如有侵权请联系删除,谢谢! 1.#if 和#ifdef 当asd_eee表达式存在而且,值为ture的时候接续向下执行 例如 #define TARGET_LITTLE_ENDINA 1 ...

  8. #if 0 #elif 1 #else #endif 用法

    跟我们平时用的if,else if,else一样,不同的是这里一定要记得#endif #include<iostream> using namespace std; # if 1 int ...

  9. #define #undef等基本知识

    1.预处理符号 例子: #include <stdio.h> #define DEBUG_PRINT printf("FILE %s line %d:" \" ...

最新文章

  1. 灰色关联投影法python_python灰色关联算法(灰度关联算法)
  2. 边缘提取算子检测比较
  3. _一文让你透彻理解Linux的SOCKET编程(含实例解析)
  4. PRD:「FITLIFE」小程序产品需求文档(用户端)
  5. 109_Power Pivot客户ABC(帕累托)分析度量值写法(非计算列)
  6. JZOJ 3503. 粉刷(paint)
  7. 敏捷外包工程系列之三:固定合同(敏捷外包工程,敏捷开发,产品负责人,客户价值)...
  8. thinkphp使用ajax
  9. Undefined symbols for architecture armv7
  10. 12306的数据库设计
  11. 对称加密与非对称加密算法
  12. ipv4 pxe 联想start_PC开机出现Start pxe over ipv4解决办法 PC重启后显示start pxe over IPv4...
  13. android 双向进度条,Android自定义双向进度条
  14. OpenFOAM常用类
  15. 小程序高级电商前端第1周走进Web全栈工程师<二>
  16. 学习记录:jmeter添加jp@gc - Hits per Second
  17. ppt演示文档如何瘦身
  18. 【花雕小实验01】使用万用表测量OPT101模拟光照传感器模块
  19. 你会想谈一场诗书传情,相知相敬的爱情吗?
  20. nubia Z5 mini 小牛 黑砖qhsusb dload修复

热门文章

  1. python中怎样向字典中添加值_python的字典中,如何向指定路径添加值?
  2. pyqt5 不报错退出_最新版本Python图形化开发环境Anaconda(Python3.7) +PyQT5+Eric6
  3. 网络人的未来分享讲义_酒品看人品,未来酱分享饮酒识人技巧!谁是你值得深交的人?...
  4. 实现元素拖拽放大缩小_Vue实战067:DOM元素拖拽效果的实现
  5. html可视化布局工具_简介一些蜘蛛布局标签的饼图的绘制方法
  6. Bootstrap框架下按钮的禁用
  7. MySQL - 行锁 表锁 乐观锁 悲观锁 读锁 写锁
  8. 微信小程序开发问题汇总
  9. CHM乱码解决方案!
  10. Hadoop组件之-HDFS(HA实现细节)