C++ 预处理指令介绍

本文详细介绍了C++中预处理指令的三大核心:文件包含(#include)、宏定义(#define)和条件编译(#if等),展示了如何通过这些指令组织和控制代码编译过程,以及它们在实际开发中的应用场景和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++ 预处理指令介绍

预处理指令,指示编译器在实际编译之前所需完成的预处理。

所有的预处理指令都是以井号(#)开头,只有空格字符可以出现在预处理指令之前。预处理指令不是 C++ 语句,所以它们不会以分号(;)结尾。

C++支持很多预处理指令,比如 #include、#define、#if、#else、#line 等。

最常见的预处理有:

☆文件包含: #include 是一种最为常见的预处理,主要是做为文件的引用组合源程序正文。

☆宏替换(宏定义): #define,这是最常见的用法,它可以定义符号常量、函数功能、重新命名、字符串的拼接等各种功能。#define 预处理指令用于创建符号常量。该符号常量通常称为宏,指令的一般形式是:

#define 标识符 值

#define 标识符(参数表) 代码序列

其中参数表中的参数之间用逗号分隔,在代码序列中必须要包含参数表中的参数。在定义带参数的宏时,宏名与左圆括号之间不允许有空白符,应紧接在一起,否则变成了无参数的宏定义。带参数宏调用提供的实在参数个数必须与宏定义中的形式参数个数相同。

宏定义的有效范围称为宏名的作用域,宏名的作用域从宏定义的结束处开始到其所在的源代码文件末尾。宏名的作用域不受分程序结构的影响。如果需要终止宏名的作用域,可以用预处理指令#undef加上宏名。

宏名一般用大写字母,以便与变量名区别。如有必要,宏名可被重复定义,被重复定义后,宏名原先的意义被新意义所代替。

☆条件编译:一般情况下,在进行编译时对源程序中的每一行都要编译,但是有时希望程序中某一部分内容只在满足一定条件时才进行编译,如果不满足这个条件,就不编译这部分内容,这就是条件编译。 #if,#ifndef,#ifdef,#endif,#undef等是比较常见的预处理,主要是进行编译时进行有选择的挑选,注释掉一些指定的代码,以达到版本控制、防止对文件重复包含的功能。

下面举例解析之。

一、文件包含

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值