编译预处理

本文介绍了C语言编译预处理的两个主要方面:宏定义和文件包含语句。宏定义分为不带参数和带参数两种情况,不带参数的宏定义用于简单替换,而带参数的宏定义则允许进行参数替换,类似于函数但处理方式不同。文件包含语句允许将一个源文件的内容插入到另一个源文件中,方便代码复用和维护。

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

  通常在C编译系统对程序进行编译前,先对程序中一些特殊的命令进行”预处理”,然后将预处理的结果和源程序一起进行编译处理,得到目标代码。

1.宏定义

  宏(Macro),是一种批量处理的称谓。计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。解释器或编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。宏这一术语也常常被用于许多类似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数情况下,“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。[百度百科]

(1)不带参数的宏定义
用一个指定的标识(即名字)来代替一个字符串,它的一般形式如下

#define 标识符 字符串

#define PI 3.1415926

指定用标识符PI来代替字符串3.1415926,以后程序中出现PI,则它表示”3.1415926”。
这里需要注意几点:
1. 宏定义一般用大写字母表示,便于与变量名相区别。
2. 宏定义不是C语言,所以结尾不必加分号。
3. 通常#define命令写在文件开头,位于函数之前,作为文件的一部分,在此文件范围内有作用。
4. 对程序中用双引号括起来的字符串的字符,即使与宏名相同,也不作替换。
5. 进行宏定义时,可以引用已定义的宏名,可以层层置换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值