C语言之预处理

本文详细介绍了C语言的预处理,包括预处理的作用、何时需要预处理,以及预处理的三种指令:宏定义(无参数和有参数的宏)、文件包含和条件编译。条件编译在实际工作中用于按不同条件编译不同程序部分,如产品线区分、调试版与发布版的区分,并提供了防止头文件重复包含的方法。
摘要由CSDN通过智能技术生成

什么是预处理(预编译)

就是在编译前自动对源程序中预处理的部分做处理,处理完毕再进行对源程序的编译。
就是首先编译#字开头的指令。

什么时候需要预处理

  1. 在使用总是经常使用但不经常改动的大型代码
  2. 程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项,将所有包含文件预编译为一个“预编译头”

预处理的三种指令

  1. 宏定义:#define 指令定义一个宏,#undef 指令删除一个宏定义。
  2. 文件包含:#include指令导致一个指定文件的内容被包含到程序中。
  3. 条件编译:#if,#ifdef,#ifndef,,#elif,#else 和#dendif 指令可以根据编译器可以测试的条件来将一段文本包含到程序中或排除在程序之外。

剩下的#error,#line和#pragma指令更特殊的指令,较少用到。

宏定义

用一个标识符来表示一个字符串,这叫做 “宏”
被定义为“宏”的标识符称为 “宏名”
在编译预处理时,对程序中所有出现的宏名,都用宏定义中的字符串去代换,这称为 “宏代换”或“宏展开”

无参数的宏

#define 标识符 字符串
字符串可以是常数、表达式、格式串等。
例如:#define M (y*y+3*y)

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值