c语言之c预处理程序

本文详细介绍了C语言预处理指令的使用方法,包括宏定义、文件包含及条件编译等核心概念。通过实例展示了如何利用这些指令提升编程效率,如批量定义符号常量并通过文件包含进行管理。此外还探讨了宏定义与函数定义的区别,以及如何正确地定义带有参数的宏。

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

宏替换
以#开头的是c预处理命令,#define是宏定义命令,一般形式
#define string1 string2
表示吧\把源代码中的所以string1都换成string2,在宏定义时,如果一行写不下,\表示续行符,然后另起一行写
只要一个宏被定义了,其后的define可以引用这个宏
define在定义有参数的宏替换时,类似于定义函数
在定义具有参数的宏时,宏扩展部分要加括号
定义宏和函数的不同之一在于调用时间不同,一个是编译之前.一个是运行时
在定义有参数的宏时,宏扩展部分要加上括号,就是在变量和变量之间加上括号,否则在运算时可能会出现错误结果
文件包含,就是#include"文件名",也可以用<>,其中""表示先在当前目录中寻找所要的文件,找不到的话再到一系列系统预先设定的目录中去寻找,而<>则跳过了在当前目录中寻找的步骤,直接去系统设定的目录下寻找
我们在分块编译的大程序中,可以在一个文件中定义多个符号常量,然后用#include命令直接引用该文件从而提高工作效率:
条件编译
我们在编译时,有时希望只有满足我们要求的部分才编译,否则不参与编译,这样就要用到条件编译
条件编译的几种形式
#if 常量表达式
  程序段
#endif
其作用是若常量表达式为真,执行程序段,否则部执行,常量表达式不能有变量组成,只能由常量和宏组成
同样条件编译中也存在着if else和if elif等结构,而且条件编译还可以用宏来代替常量表达式,使判断依据为宏是否定义
#ifdef 宏名
   程序段
#endif
也可以使用udef来表示若宏未定义执行下列程序段
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值