#if...#endif的用法总结参考

2023-10-27

#if...#endif的用法总结

#if...#endif是C++种的条件编译预处理命令 有两种格式:

1:#ifdef  标示符      

  程序段1      

#else         

  程序段2     

#endif 

表示:如果标示符已经被#define命令定义过,则编译程序段1,否则编译程序段2

2:#if 表达式      

   程序段1    

#else         

  程序段2    

#endif

表示:如果表达式为真,则编译程序段1,否则编译程序段2.


写出的命令应该属于格式1

  它的意思是,如果在程序中没有对**进行过#defined ** 的定义。则编译下面的语句,否则不编译。这中情况多用在需要经常移植的程序模块上,或是调试的时候用.

  结合使用 #if 与 #else、#elif、#endif、#define 和 #undef 指令,可以根据一个或多个符号是否存在来包含或排除代码。 在编译调试版本的代码或针对特定配置进行编译时,这会很有用。


以 #if 指令开始的条件指令必须用 #endif 指令显式终止。

#define 使您可以定义一个符号,通过将该符号用作传递给 #if 指令的表达式,使该表达式计算为 true。

也可以用 /define 编译器选项来定义符号。 可以用 #undef 来取消定义符号。

用 /define 或 #define 定义的符号与具有同一名称的变量不冲突。 即,不应将变量名传递到预处理器指令,并且只能用预处理器指令计算符号。

用 #define 创建的符号的范围是在其中定义该符号的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

#if...#endif的用法总结参考 的相关文章

  • 使用 C#.net 中的私有存储库的身份验证读取 BitBucket API

    我已经尝试了几天让 BitBucket API 为我工作 但是当涉及到让它为具有身份验证的私有存储库工作时 将问题设置为私有 当它们设置为公开 无需身份验证 一切正常 代码示例如下 static void Main string args
  • 如何从对Web服务发出的请求中获取客户端IP地址

    我的 IIS 中托管有一个 Web 服务 当客户端直接使用我的服务时 我需要找出客户端 IP 地址 like http MyIpAddress MyApplication MyWebServiceClass asmx http MyIpAd
  • 如何将动态数据写入 MVC 3 Razor 中的页面布局?

    我有带有 Razor 引擎的 MVC 3 C 项目 将动态数据写入 Layout cshtml 的方法和最佳实践是什么 例如 也许我想在网站的右上角显示用户名 该名称来自会话 数据库或基于用户登录的任何内容 更新 我也在寻找将某些数据渲染到
  • 从 unsigned char* 到 char* 的转换无效

    这是一个代码 1 int main int argc char argv 2 3 signed char S psc 4 unsigned char U pusc 5 char C pc 6 7 C S 8 C U 9 10 pc psc
  • 如何准备sql语句并绑定参数?

    不幸的是 文档 http www sqlite org完全缺乏示例 这真的很奇怪 就好像它假设所有读者都是优秀的程序员一样 然而 我对C 并且无法真正从文档中弄清楚如何真正准备和执行语句 我喜欢它的实施方式PDO for PHP 通常 我只
  • 弹出 x86 堆栈以访问函数 arg 时出现分段错误

    我正在尝试链接 x86 程序集和 C 我的C程序 extern int plus 10 int include
  • 如何使用 libclang 判断成员函数是 const 还是 volatile?

    我有一个实例CXCursor同类CXCursor CXXMethod 我想知道这个函数是否是const or volatile 例如 class Foo public void bar const void baz volatile voi
  • 在 T4 代码生成中,如何从引用的程序集中获取类型?

    由于 T4 在项目上下文之外运行 因此我无权访问当前程序集或其他程序集 如何注册对引用程序集的访问 然后从中获取类型 我猜您想访问项目中建筑物的程序集 我在下面的示例代码中所做的是将一个名为 TestLib 的项目添加到我的解决方案中 我将
  • 使用正则表达式解析日志文件

    我目前正在为我们的内部日志文件 由 log4php log4net 和 log4j 生成 开发一个解析器 到目前为止 我有一个很好的正则表达式来解析日志 除了一个烦人的一点 一些日志消息跨越多行 我无法正确匹配 我现在的正则表达式是这样的
  • 在关键服务器上对字符串进行内存受限的外部排序,并合并和计算重复项(数十亿个文件名)

    我们的服务器生成如下文件 c521c143 2a23 42ef 89d1 557915e2323a sign xml在其日志文件夹中 第一部分是GUID 第二部分是名称模板 我想计算具有同名模板的文件的数量 例如 我们有 c521c143
  • 如何检查给定调用站点的重载决策集

    如何检查重载解析集 我在多个调用站点中使用了 4 个相互竞争的函数 在一个调用站点中 我期望调用一个函数 但编译器会选择另一个函数 我不知道为什么 这不是微不足道的 为了了解发生了什么 我正在使用enable if disable if打开
  • 代码块 - 使用大地址感知标志进行编译

    如何使用以下命令在 64 位系统上编译 32 位应用程序LARGE ADRESS AWARE使用代码块标记 我需要使用超过 2GB 的内存 应该是添加的情况 Wl large address aware到链接标志 我不使用 CodeBloc
  • 这个元组创建习惯有名字吗?

    On the 增加邮件列表 http lists boost org Archives boost 2014 06 214213 php LouisDionne 最近发布了以下创建类似元组的实体的巧妙技巧 include
  • 我应该使用 Helgrind 还是 DRD 进行线程错误检测?

    好像Valgrind http valgrind org docs manual manual html有两个工具都可以进行线程错误检测 Helgrind http valgrind org docs manual hg manual ht
  • PowerShell 与 MongoDB C# 驱动程序方法不兼容?

    由 C 泛型引起的最新 MongoDB 驱动程序的问题 Cannot find an overload for GetCollection and the argument count 1 我可能可以使用其他没有泛型的 GetCollect
  • C# 从今天起 30 天

    我需要我的应用程序从今天起 30 天后过期 我会将当前日期存储在应用程序配置中 如何检查应用程序是否已过期 我不介意用户是否将时钟调回来并且应用程序可以正常工作 用户太愚蠢而不会这样做 if appmode Trial string dat
  • 智能感知不显示评论

    如果我在 Visual Studio 2010 中输入类似的内容数据集1 我得到所有可用方法和属性的列表 智能感知 这很好用 但是 如果我在此列表中选择一个方法或属性 我不会得到 if 的描述 例如 如果我有类似的东西 public cla
  • 使用 List.Contains 方法为 LINQ 构建表达式树

    Problem 我正在重构一些LINQ查询我们的 Web 应用程序中的多个报告 并且我尝试将一些重复的查询谓词移至它们自己的中IQueryable扩展方法 以便我们可以将它们重新用于这些报告以及将来的报告 正如您可能推断的那样 我已经重构了
  • Cordova 上的 ClearCookiesAsync()

    我正在尝试使用 wp8 cordova 中的插件来清除 WebBrowser cookie 我已经让它与 JavaScript 进行通信 并且我的 c 文件中有类似这样的内容 using WPCordovaClassLib Cordova
  • 从 git 签出后 nuget dll 丢失

    I have a C solution containing different projects On those projects I have some normal nuget packages like Newtonsoft Js

随机推荐

  • 人脸人体同时检测

    from os path import join 6 sets train test trainval val head person glasses hat face mask face 7 classes head person gla
  • SpringMVC常用注解笔记

    SpringMVC常用注解 1 请求映射注解 1 1 Controller注解 6 2 RequestMapping注解 1 3 GetMapping和 PostMapping注解 2 参数绑定注解 2 1 RequestParam注解 2
  • storybook添加全局样式与sass全局变量设置

    storybook组件需要全局样式 只需在 storybook preview js 增加全局样式即可 import src style index scss export const parameters actions argTypes
  • 微型计算机控制理论基础答案,微型计算机控制技术试卷c

    微型计算机控制技术试卷a 潘新民 微型计算机控制技术实用教程 微型计算机控制技术试卷C 一 选择题 本题共10小题 每小题 1 5分 共15分 1 DAC0832的VREF接 5V IOUT1接运算放大器异名端 输入为1000000B 输出
  • 一文教会你:如何使用 HttpRunner v4.0 开展性能测试

    在 HttpRunner v4 0 全新发布 中我们有介绍过 HttpRunner v4 0 期望成为一款专业级的一体化 API 测试工具 特别是针对性能测试能力进行了重大升级 相比于之前的版本 HttpRunner v4 0 在性能测试部
  • C语言中数组名和指针的区别

    关键字 c 注明 转载于新浪 作者名字丢失 魔幻数组名 请看程序 本文程序在WIN32平台下编译 1 include lt iostream gt 2 int main 3 4 char str 10 5 char pStr str 6 c
  • 数据结构——双向循环链表(二)双向动态链表

    双向动态链表才是关键 直接看例子和图示既就可以 主要是自己会画图 然后根据图来写代码 dlist h 头文件 include
  • 自动控制原理知识点梳理——5.线性系统的频域分析法

    前面第二章数学模型有提到频域的频率特性 频率特性也是系统数学模型的一种表达形式 频域分析法是应用频率特性研究线性系统 的一种图解方法 目录 1 知识梳理 逻辑图 2 频率特性的几何表示 2 1 典型环节频率特性曲线的绘制 2 2 幅相频率特
  • 判断实体类对象的属性值是否全部为空(代码+踩坑)

    判断实体类对象的属性值是否全部为空 话不多说 先上代码 public boolean checkObjAllFieldsIsNull Object object 如果对象为null直接返回true if null object return
  • 2019.11.27

    2019 11 27 滑动平均 均值滤波 sliding window 5 impulse fft tmp impulse fft 6k for i 1 sliding window 1 n sliding window impulse f
  • 合宙Air724UG LuatOS-Air LVGL API--对象

    对象 概念 在 LVGL 中 用户界面的基本构建块是对象 例如 按钮 标签 图像 列表 图表或文本区域 属性 基本属性 所有对象类型都共享一些基本属性 Position 位置 Size 尺寸 Parent 父母 Click enable 单
  • Jenkins添加allure测试报告

    构建任务 1 新建item 2 输入任务名称 gt 点击Freestyle project gt 点击确定 3 在任务配置页面对任务进行配置 gt 添加描述 gt 选择高级 4 勾选使用自定义的工作空间 gt 目录输入执行文件的存放路径 5
  • [Pytorch系列-55]:循环神经网络 - 使用LSTM网络对股票走势进行预测

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121665139 目录 第1章 LST
  • Element-ui踩坑

    Element ui踩坑 验证图片上传 其实 加上 prop就行了 再图上传成功的时候再做个图片验证取消就可以 看着麻烦其实挺简单的
  • jquery导入数据_亿级电商实时数据分析平台构建实战

    基于Flink ClickHouse构建亿级电商实时数据分析平台 PC 移动 小程序 引用网络文章开启本课程的开篇 在大数据分析领域中 传统的大数据分析需要不同框架和技术组合才能达到最终的效果 在人力成本 技术能力和硬件成本上以及维护成本让
  • 合并两个有序数组为一个有序数组

    一 归并排序 问题 两个有序数组 合并成一个有序数组 先依次比较两个数组 按照小的就传入新的数组 当这次比较完之后可能有一个数组的长度很长 留下一些数组 然后在新数组的末尾插入即可 两个有序数组的合并函数 int MergeList int
  • bat面试题 python 单链表反转排序

    单链表反转python实现 单链表的反转可以使用循环 也可以使用递归的方式 1 循环反转单链表
  • Java初始String和运算符

    1 Sting 在Java中 数据类型分为基本数据类型和引用数据类型 基本数据类型有 4类 即 整型 浮点型 字符型 布尔型 8种 即 byte short int long float double 引用数据类型有 Sting 包装类 B
  • 项目总结(云课堂and网易云音乐)

    一 云课堂 地址栏传参 首页 搜索页 接收地址参数 二 网易云音乐 1 audio的属性 src 歌曲的路径 preload 是否在页面加载后立即加载 设置 autoplay 后无效 controls 显示 audio 自带的播放控件 lo
  • #if...#endif的用法总结参考

    if endif的用法总结 if endif是C 种的条件编译预处理命令 有两种格式 1 ifdef 标示符 程序段1 else 程序段2 endif 表示 如果标示符已经被 define命令定义过 则编译程序段1 否则编译程序段2 2 i