c++学习之--关于编译预处理

本文详细介绍了C++中的预处理指令,包括文件包含、宏定义及条件编译等内容。阐述了不同文件包含方式的区别,解释了宏定义的用法及其优缺点,并对比了现代条件编译与传统条件编译的写法。

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

文件包含

在一个源程序中可用“文件包含”(include)预编译处理命令将另一个源程序文件的全部内容包含进来。(include)命令的格式为:

#include”文件名”

#include<文件名>

1.关于用<>和””的区别用<>表示直接从c++编译器指定的目录include查找,而用双引号括起来的文件名表示先从当前目录查找,若找不到再到编译器指定的目录include查找。通常,包含用户自定义的文件用双引号,而包含c++编译器预定义的文件用<>。为了便于文件包含允许在文件名前面加上路径,例如:

#include “c:\\my\\myf.h”

2,包含文件的扩展名推荐用.h(head)头文件;一个include命令只能包含一个指定文件,若要包含多个文件请使用多个include命令;用包含文件的内容替换include命令行时,是在一个临时文件中进行的,并不改变原文件的内容;include命令可以出现在程序的任何地方,通常放在程序的开头。

分为带参数的宏和不带参数的宏

宏定义用#define实现,使用宏的优点是见名知意,简化书写,方便修改。

但是宏只是做简单替换,不做任何的计算。

 

条件编译

条件编译分为两类:传统条件编译和现代条件编译,defined是一个预处理运算符,用于判断标示符是否是宏名使用形式是:

defined(标示符 defined 标示符

 

现代条件编译                   和              传统条件编译

#if defined(_MM)                                                      #ifndef_MM               

#define _MM                                                                 #define_MM        

#endif                                                                           #endif           

 

条件编译命令可以减小目标代码长度,主要用于设计通用程序,调试程序等等。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值