编译预处理:#if

news/2024/12/22 15:20:49/

用法

#if <expression>

#elif

#end

<expression> 是整数常量比较的表达式,例如:

  • defined表达式,例如 defined AAA, 或者 defined(AAA), 如果AAA是一个宏定义,return true,否则,return false;
  • 单个整数,例如:1/10/100/0, 非零为true,零为false;
  • 整数比较,例如:1 == 1为true, 0 == 0为ture, 1 > 2为false;
  • 单个的字符,例如:‘A’ == ‘A’ 为true, ‘A’ == 'C’为false, 我推测最终还是转化为ASIC码,然后进行整数的比较;
  • 如果出现两个未定义的变量,例如 AAA == BBB, 永远为true,我推测测试AAA和BBB都会被认为是零,即 0 == 0,所以永远为true;关于这一点,可以参考CppReference

After all macro expansion and evaluation of defined, __has_include (since C++17), and __has_cpp_attribute (since C++20) expressions, any identifier which is not a boolean literal is replaced with the number ​0​ (this includes identifiers that are lexically keywords, but not alternative tokens like and).
Then the expression is evaluated as an integral constant expression.

切记,

  • 不允许字符串的比较,例如 “AAA” == “AAA”, “AAA” == “BBB”, 编译会报错;

http://www.ppmy.cn/news/46779.html

相关文章

2023年全国最新安全员精选真题及答案55

百分百题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 81.&#xff08;单选题&#xff09;扣件式钢管模板支架的剪刀撑应用旋转扣件进行固定&…

HTML—javaEE

文章目录 1.认识HTML2.HTML标签的使用2.1注释2.2标题2.3段落2.4换行2.5字体加粗、斜体字、删除线、下划线2.6图片2.7超链接2.8表格2.9列表2.10表单标签2.11div2.12span 3.HTML特殊符号 1.认识HTML &#xff08;1&#xff09;HTML是网页的编程语言&#xff0c;文件的内容主要由…

lamp 架构的搭建

php 解释动态页面 php来连接数据库 mysql 页面信息和端口信息 存放数据 apache 前端web服务器&#xff0c;展现页面 源码编译安装这三个服务 配置下载apache: systemctl stop firewalld 关闭安全机制&#xff0c;防火墙 可以一条命令:systemctl is-enabled firewalld 和 s…

计组2.3——浮点数的表示和运算

计组2.3 浮点数 #mermaid-svg-hwjyO2bt7hFXy1eD {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-hwjyO2bt7hFXy1eD .error-icon{fill:#552222;}#mermaid-svg-hwjyO2bt7hFXy1eD .error-text{fill:#552222;stroke:#552…

Python Web 深度学习实用指南:第三部分

原文&#xff1a;Hands-On Python Deep Learning for the Web 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#xff0c;只关…

MySQL客观题

MySQL客观题 在数据库的三级模式结构中&#xff0c;描述数据库中全体数据的全局逻辑结构和特性的是&#xff08; A &#xff09; A 模式 B 内模式 C 存储模式 D 外模式 数据库系统的特点是&#xff08; A &#xff09;、数据独立、减少数据冗余、避免数据不一致和加强了数据保…

巨坑!如果你cuda是11.1而cuda toolkit是9.2,导致无法安装apex,同时你还没有服务器权限去换驱动

非常奇葩的问题。gpu是3090&#xff0c;cuda是正常的11.1&#xff0c;但是nvcc -V输出的却是9.2。 本来很简单&#xff0c;重新安装一下&#xff0c;把两个版本对齐了就好了&#xff0c;但是我用的是实验室的服务器&#xff0c;我是没有权限去在系统上安装东西的&#xff0c;连…

TensorFlow 2.0 的新增功能:第一、二部分

原文&#xff1a;What’s New in TensorFlow 2.0 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#xff0c;只关心如何实现目…