全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

c++中的预处理器指令有哪些_c++ #include, #define, #ifdef用法总结【基础】

include、#define、#ifdef 是 C++ 预处理器最基础的三条指令:#include 用于文本插入头文件, 查系统路径,"" 先查当前目录;#define 执行无类型文本替换,定义常量或带参宏(需括号防优先级错误);#ifdef/#ifndef 实现条件编译,常用于跨平台适配与头文件保护。

#include、#define、#ifdef 是 C++ 预处理器最常用也最基础的三条指令,它们在编译前由预处理器处理,不参与实际编译,但深刻影响代码结构和行为。

#include:引入头文件

作用是把指定头文件的内容“原样复制”到当前文件中该指令所在位置,用于复用声明(如函数原型、类定义、宏等)。

  • 尖括号 表示从系统路径(如 /usr/include 或编译器内置路径)查找,常用于标准库头文件:
    #include
  • 双引号 "" 表示先在当前源文件所在目录查找,找不到再查系统路径,适合自定义头文件:
    #include "myheader.h"
  • 注意:不是“包含整个编译单元”,只是文本插入;重复包含可能引发重定义错误(可用头文件保护避免)

#define:定义宏

用于创建宏常量或宏函数,本质是文本替换,无类型检查,慎用复杂表达式。

  • 定义常量:#define PI 3.14159 → 后续所有 PI 被替换成 3.14159
  • 定义带参宏(注意加括号防运算优先级出错):
    #define SQUARE(x) ((x) * (x))SQUARE(a + b) 展开为 ((a + b) * (a + b))
  • 不推荐用 #define 替代 constconstexpr 常量,后者有类型安全和调试支持

#ifdef / #ifndef / #endif:条件编译

根据宏是否已定义,决定某段代码是否参与编译,常用于跨平台适配、调试开关、头文件保护。

  • #ifdef MACRO:如果 MACRO 已被 #define 定义,则编译其后到 #endif 的代码
  • #ifndef MACRO:如果 MACRO 未定义,才编译中间代码(更常用,比如头文件保护)
  • 典型头文件保护写法:
    #ifndef MYHEADER_H
    #define MYHEADER_H
    // 头文件内容
    #endif
  • 配合 #else#elif 可实现多分支编译逻辑,例如区分 Windows/Linux:
    #ifdef _WIN32
    // Windows 特有代码
    #else
    // Linux/macOS 代码
    #endif

基本上就这些。掌握这三条指令,就能看懂绝大多数 C++ 头文件和项目配置逻辑。不复杂但容易忽略细节,比如宏替换顺序、括号缺失、重复包含问题——多写几遍、编译看看报错,很快就能踩准节奏。


# c++  # linux  # windows  # 处理器  # mac  # ios  # macos  # win  # stream  # cos  # 常量  # define  # include  # #define  # const  # 预处理器  # 无类型  # 头文件  # 就能  # 三条  # 找不到  # 已被  # 自定义  # 报错  # 先在  # 最常用  # 看懂 


相关文章: 如何快速生成高效建站系统源代码?  制作网页的网站有哪些,电脑上怎么做网页?  招贴海报怎么做,什么是海报招贴?  如何在香港免费服务器上快速搭建网站?  如何快速搭建个人网站并优化SEO?  建站org新手必看:2024最新搭建流程与模板选择技巧  如何在Windows服务器上快速搭建网站?  如何通过远程VPS快速搭建个人网站?  建站主机解析:虚拟主机配置与服务器选择指南  如何自定义建站之星模板颜色并下载新样式?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  想学网站制作怎么学,建立一个网站要花费多少?  MySQL查询结果复制到新表的方法(更新、插入)  韩国服务器如何优化跨境访问实现高效连接?  北京制作网站的公司,北京铁路集团官方网站?  西安大型网站制作公司,西安招聘网站最好的是哪个?  广东企业建站网站优化与SEO营销核心策略指南  大连网站制作公司哪家好一点,大连买房网站哪个好?  建站之星安装提示数据库无法连接如何解决?  建站主机是否属于云主机类型?  股票网站制作软件,网上股票怎么开户?  建站主机如何选?高性价比方案全解析  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  建站之星后台密码遗忘或太弱?如何重置与强化?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  如何在建站之星网店版论坛获取技术支持?  TestNG的testng.xml配置文件怎么写  网站代码制作软件有哪些,如何生成自己网站的代码?  建站10G流量真的够用吗?如何应对访问高峰?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  如何用IIS7快速搭建并优化网站站点?  建站之星如何助力网站排名飙升?揭秘高效技巧  建站之星后台密码如何安全设置与找回?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何用美橙互联一键搭建多站合一网站?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  制作公司内部网站有哪些,内网如何建网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何快速搭建FTP站点实现文件共享?  建站主机服务器选型指南与性能优化方案解析  头像制作网站在线制作软件,dw网页背景图像怎么设置?  IOS倒计时设置UIButton标题title的抖动问题  建站VPS选购需注意哪些关键参数?  如何在阿里云完成域名注册与建站?  h5网站制作工具有哪些,h5页面制作工具有哪些? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。