宏、宏定义

发布时间:2026/8/3 19:27:44

宏、宏定义
文章目录一、定义二、宏的使用1.是或否2.二选一(1)区分操作系统的宏命令2.防止头文件重复包含的宏命令 (对于.h文件)三、必须使用宏的场景场景一条件编译跨平台 操作系统 / 开关场景二日志记录获取文件名、行号、函数名场景三Qt 框架的特殊情况对你很重要一、定义1.在文件开头定义宏#define宏名 宏值举例#definePI3.14159#defineMAX_SIZE100#defineENABLE_DEBUG// 常用于条件编译配合 #ifdef2.在某头文件里定义宏然后在文件头部#include 定义宏的头文件.h例如在version.h里写上#defineUOS_CMBC1//0:标准版本 1:民生银行UOS版本然后在其他.h或.cpp文件头部写上#includeversion.h二、宏的使用1.是或否#if宏//或者#if !宏内容#endif举例#includeiostream// 这行就像“打开开关”。如果把这行注释掉开关就关了。#defineENABLE_DEBUGintmain(){inta10;#ifdefENABLE_DEBUG// 如果上面定义了 ENABLE_DEBUG这段代码就会被保留并编译std::cout调试信息变量 a 的值是 astd::endl;#endifstd::cout程序继续运行...std::endl;return0;}2.二选一#ifdef宏//注意二选一不能出现 #ifdef !宏内容1#else内容2#endif举例需要跨平台的代码需要区分Windows和Linux操作系统区分操作系统的宏不需要自己定义系统可直接识别(1)区分操作系统的宏命令Windows的宏是WIN32注意三个字母都要大写否则无法识别。#ifdefWIN32Windows代码#elseUnix/Linux代码#endif2.防止头文件重复包含的宏命令 (对于.h文件)以LogWidget.h为例方法13行搞定是通用的宏#ifdefLogWidget_H#defineLogWidget_H内容#endif方法2 1行搞定但不通用仅限某些#pragmaonce内容三、必须使用宏的场景坚决不推荐使用尤其是宏函数但在极少数特定场景下它们依然是“不可替代”的。尽管不推荐但在以下 3 种场景宏依然是唯一解C 标准至今没有提供更好的替代品场景一条件编译跨平台 操作系统 / 开关这是你刚刚提到的 #define ENABLE_DEBUG 和 #ifdef _WIN32强烈推荐使用。这是预处理器独有的能力可以在编译前就剔除不兼容平台的代码这是普通函数做不到的。场景二日志记录获取文件名、行号、函数名如果你想打印“当前在哪个文件的哪一行出了错”必须用宏因为FILE、LINE、func这些魔法宏是由预处理器在编译时填入的。// 这种多行宏业界仍在大量使用如 spdlog、Qt 的 qDebug#defineLOG_ERROR(msg)\do{\std::cerr[__FILE__:__LINE__] msgstd::endl;\}while(0)场景三Qt 框架的特殊情况对你很重要Qt 本身大量使用了宏而且你必须配合它signals / slots / emit这些都是 Qt 定义的宏MOC元对象编译器需要它们来生成反射代码。你不能不用。Q_OBJECT这也是宏用于开启信号槽和属性系统。区别在于Qt 的宏大多用于类声明代码生成而不是用于数值计算。所以在 Qt 项目中只要遵循官方规则即可切勿自己发明复杂的计算宏。

相关新闻

如何在Mac上优雅显示桌面歌词:LyricsX完整指南

如何在Mac上优雅显示桌面歌词:LyricsX完整指南

2026/8/3 19:27:44

如何在Mac上优雅显示桌面歌词:LyricsX完整指南 【免费下载链接】Lyrics Swift-based iTunes plug-in to display lyrics on the desktop. 项目地址: https://gitcode.com/gh_mirrors/lyr/Lyrics 还在为听歌时频繁切换窗口查看歌词而烦恼吗?Lyrics…

智能网联汽车信任根与密钥管理技术解析

智能网联汽车信任根与密钥管理技术解析

2026/8/3 19:27:44

1. 智能网联汽车的安全基石:信任根的本质与挑战当一辆智能网联汽车以60公里时速行驶时,其车载系统每秒需要处理超过1000条来自各类传感器的数据流,并与云端服务器进行数十次加密通信。这个过程中,任何一处密钥泄露或身份伪造都可能…

安全厂商原生集成反钓鱼工具至生成式 AI 对话平台的技术逻辑、行业动因与落地局限研究

安全厂商原生集成反钓鱼工具至生成式 AI 对话平台的技术逻辑、行业动因与落地局限研究

2026/8/3 19:17:43

摘要 生成式 AI 大幅降低网络钓鱼攻击实施门槛,传统静态网页防护、邮件网关防护存在场景滞后性缺陷,普通用户习惯于依托 ChatGPT、Claude 等通用大模型鉴别可疑诈骗信息,但通用大模型缺乏权威威胁情报库支撑,文本推理判断可信度不…

为什么你的AI绘本被平台下架?——基于1372本AI生成绘本的合规性审计报告(含可复用审查清单)

为什么你的AI绘本被平台下架?——基于1372本AI生成绘本的合规性审计报告(含可复用审查清单)

2026/8/3 20:17:46

更多请点击: https://kaifayun.com 第一章:为什么你的AI绘本被平台下架?——基于1372本AI生成绘本的合规性审计报告(含可复用审查清单) 真实审计发现:下架主因并非“AI生成”,而是隐性合规缺口…

Elementor模板套件开发实战与性能优化指南

Elementor模板套件开发实战与性能优化指南

2026/8/3 20:17:46

1. TerraviGo Elementor Kit深度解析:从开发者视角看模板套件的实战应用作为一名长期深耕WordPress生态的开发者,我最近花了两周时间完整拆解了TerraviGo这款Elementor模板套件。与大多数浅尝辄止的评测不同,本文将带你看透这个工具包的设计哲…

C++11尾随返回类型语法详解与应用场景

C++11尾随返回类型语法详解与应用场景

2026/8/3 20:17:46

1. 尾随返回类型语法解析在C11标准中引入的->符号用于函数声明后指定返回类型,这种语法形式被称为"尾随返回类型"(trailing return type)。它彻底改变了传统C函数声明的书写方式,为类型推导和复杂返回类型表达提供了更灵活的解决方案。1.1 …

脚本明明写对了,为什么就是匹配不到?\r\n 和 \n 的坑

脚本明明写对了,为什么就是匹配不到?\r\n 和 \n 的坑

2026/8/3 20:17:46

一句话: Perl、Python、Shell 脚本在 Windows 上跑,用 \n 匹配行尾总是失败——因为文件实际是 \r\n。加上 Windows 大小写不敏感(.c .C),两个坑加起来能浪费一上午。 适合谁读:适合嵌入式开发者、单片机初学者及遇到…

YASKAWA CX80-00205-V1 控制器模块

YASKAWA CX80-00205-V1 控制器模块

2026/8/3 20:17:46

YASKAWA CX80-00205-V1 是安川电机推出的一款控制器模块,属于其运动控制与自动化解决方案的核心组件之一。产品特点制造商为安川电机,专注于运动控制、机器人技术和自动化解决方案。继承了安川在伺服、驱动和工业机器人领域一贯的精度和可靠性特点。产品…

【短视频创作者生存指南】:当AI脚本通过率提升至83.6%,我们终于告别熬夜改稿(附A/B测试数据)

【短视频创作者生存指南】:当AI脚本通过率提升至83.6%,我们终于告别熬夜改稿(附A/B测试数据)

2026/8/3 20:07:46

更多请点击: https://codechina.net 第一章:AI写短视频脚本的范式迁移与行业拐点 过去依赖人工脑暴、分镜手绘与反复试拍的短视频内容生产模式,正被基于大语言模型的端到端脚本生成范式所重构。这一迁移并非简单工具替代,而是从“…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/3 4:49:52

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/3 19:24:18

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/2 0:04:43

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

从提示词小白到AI内容架构师(20年技术老兵的6阶能力跃迁图谱,仅剩最后87个免费解读名额)

从提示词小白到AI内容架构师(20年技术老兵的6阶能力跃迁图谱,仅剩最后87个免费解读名额)

2026/8/3 0:06:20

更多请点击: https://codechina.net 第一章:AI写作能力跃迁的认知革命 过去五年,AI写作已从“模板填充”迈入“语义共建”阶段——模型不再仅复述训练数据中的句式,而是基于跨文档推理、意图锚定与风格自适应,动态构建…

AU-48八米拾音的信噪比衰减与降噪门限耦合分析

AU-48八米拾音的信噪比衰减与降噪门限耦合分析

2026/8/3 0:06:20

一、"拾音 8 米"这个指标该怎么读AU-48 的规格里,麦克风拾取范围写的是 10cm-800cm,配合 T1/T2 参数切换可选四档:中距离 0.5-2m、近距离 0.1-0.2m、远距离 0.5-5m、超远距离 0.5-8m。"能拾音 8 米"这句话本身没错&#…

LangChain 从 Demo 到团队落地,真正卡壳的是哪一步?

LangChain 从 Demo 到团队落地,真正卡壳的是哪一步?

2026/8/3 0:06:20

聊《LangChain并不难,难的是知道什么时候不该用》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。 摘要 摘要:很多人学 LangChain 都是从调个 API 开始,跑通一个 Demo 觉得挺简单…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/2 17:06:42

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/3 7:25:44

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/3 2:41:27

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…