#if、#elif、#else和#endif指令 的作用

#if 指令,与 #elif, #else和 #endif 指令,控件源文件的生成。如果表达式编写 (在 #if) 后有一个非零值,在 #if 指令后的行组在该翻译单元保留

#if注意使用:

必须以结束 #endif 指令与源文件中的每个 #if 指令。任意数量的 #elif 指令可以出现在 #if 和 #endif 指令之间,但是,最多一个 #else 指令允许。#else 指令,如果有,则必须是最后一个指令

#if的使用

1 #if 后面跟一个为0的时候里面就不会编译,可以当做多行注释使用如下

#include <iostream>
#include <string>
using namespace std;
int main()
{#if 0
123sdf
adinf adfm iasdf adflkj adsf
adf afd afd adsf
大大ad
暗室逢灯安分阿斯顿发
#endifreturn 0;
};

2 宏定义的时候使用(c++中 true 可以当做 1,false 当做0)

#include <iostream>
#include <string>
using namespace std;
#define POWER 1
int main()
{
#if POWER == 1cout << "power==1" << endl;
#elif POWER == 2cout << "power==1" << endl;
#elsecout << "power==1" << endl;
#endifreturn 0;
};

打印结果:

3 使用defined的情况

这个是说defined(xx) 的意思是xx 有没有被宏定义,如果定义了为true 否则为false

如下 power 被宏定义了,所以打印结果是power==1 具体的如下

#include <iostream>
#include <string>
using namespace std;
#define POWER 1
int main()
{#if defined(POWER)cout << "power==1" << endl;
#elif defined(HELLO)cout << "power==1" << endl;
#elsecout << "power==1" << endl;
#endifreturn 0;
};

C++ #if、#elif、#else和#endif指令 的使用相关推荐

  1. C 语言:#endif 指令

    本文章解释了如何在 C 语言中使用 #endif 预处理器指令.更多C教程请访问码农之家 描述 在 C 编程语言中,#endif 指令关闭以下指令:#if.#ifdef 或 #ifndef.当遇到#e ...

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

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

  3. 条件编译#define、#undef、#if、#elif、#elif defined、#elif !defined 、#endif用法

    条件编译 上代码 // what is the fucking shit.cpp : 定义控制台应用程序的入口点. //#include "stdafx.h"#include &l ...

  4. C Primer Plus(第5版)中文版

    1. 在声明一个简单变量和数组时使用关键字const很简单.指针则要复杂一些,因为不得不把让指针本身成为const与让指针指向的值成为const区分开来.下面的声明表明pf指向的值必须是不变的: 但p ...

  5. c语言 define宏名称if(参数),iOS深思篇 | 宏定义

    一. 简介 宏是一种批量处理的称谓,简单来说就是根据定义好的规则替换一定的文本.替换过程在程序编译期,也因此大量使用宏会造成编译时间变长:而且替换过程不进行类型安全检查;还需要注意"边缘效应 ...

  6. iOS深思篇 | 宏定义

    一. 简介 宏是一种批量处理的称谓,简单来说就是根据定义好的规则替换一定的文本.替换过程在程序编译期,也因此大量使用宏会造成编译时间变长:而且替换过程不进行类型安全检查;还需要注意"边缘效应 ...

  7. C#预处理器指令之#define/#undefine/#if/#elif/#else/#endif

    预处理器命令的功能非常强大,在编程过程中的使用也非常广泛,比如在版本发布中使用非常方便: 1,#define(告诉编译器存在给定名称的符号)    #undefine(删除符号) 2,#if    # ...

  8. C# #if, #else和#endif预处理指令

        #if 使您可以开始条件指令,测试一个或多个符号以查看它们是否计算为 true.如果它们的计算结果确实为true,则编译器将计算位于 #if 与最近的 #endif 指令之间的所有代码.例如, ...

  9. elif是不是java关键字_C# 中的#if、#elif、#else、#endif等条件编译符号 (转载)

    这些是C#中的条件编译符号.这些指令我在项目中遇到过,查过网络,问过人(当然,既不认识大牛,也不认识小牛,所以没什么收获).今天翻看一本资料,有提到这个方面的东西,所以写下来和能看到这篇文章的人一起学 ...

最新文章

  1. java培训机构如何选择适合自己的
  2. HADOOP常见错误
  3. 网络工程师常用英文简写
  4. linux 开启独立iptables日志
  5. FTP之‘基础连接已关闭:服务器提交了协议冲突’错误探析
  6. vue 生产word_nodejs(officegen)+vue(axios)在客户端导出word文档
  7. JS判断数字/字母/中文
  8. Qt文档阅读笔记-Fortune Client Example实例解析
  9. 四旋翼双环PID控制
  10. nodejs 延时函数
  11. pandas笔记(7)DataFrame数学运算
  12. phython入门开始
  13. 练习题 斐波那契数列
  14. AboutSpace
  15. 电脑的ppt打不开计算机二级,打不开电脑中的ppt文件并提示访问出错的解决方法...
  16. o.m.s.m.ClassPathMapperScanner : No MyBatis mapper was found in ‘[com.XXX.XXX]‘ pack
  17. uni-app微信小程序微信登录(获取头像、个性签名等基本信息)
  18. 情人节——与她对弈五子棋(Python实现)
  19. Gitbook离线电子书打包方案
  20. 基于Vue3+Spring Boot+Web的学生选课管理系统

热门文章

  1. VS Code 配置调试参数、launch.json 配置文件属性、task.json 变量替换、自动保存并格式化、空格和制表符、函数调用关系、文件搜索和全局搜索、
  2. Redis 高级特性(2)—— 发布 订阅模式
  3. 知识蒸馏(Knowledge Distillation)详细深入透彻理解重点
  4. pytorch中查看gpu信息
  5. 高并发下的接口幂等性解决方案
  6. LeetCode简单题之汇总区间
  7. 晶体管逻辑芯片设计微缩图形化
  8. TensorFlow优化器及用法
  9. MEMS传感器作为变革的驱动力
  10. 2021年大数据ELK(十二):Elasticsearch编程(环境准备)