重温C语言之预处理命令

预处理命令:以“#”符号开头的编译指令(预处理命令属于C语言编译器)

预处理的主要作用:
1. 将源文件中以”#include”格式包含的文件复制到编译的源文件中
2. 用实际值替换使用”#define”定义的字符串
3. 根据”#if”后面的条件决定需要编译的代码

预处理命令:
1. “#define”:宏定义
2. “#include”:将另一源文件嵌入到带有”#include”的源文件中
3. “#error”:强迫停止编译,并输出错误信息。主要用于程序调试
4. “#if …#elif …#else …#endif”预编译分支指令。与C语言的if …else if …else ..语句类似,根据#if或#elif后面的常量表达式决定编译哪个分支代码
5. “#ifdef”:如果后面的常量已经被定义,则返回true,编译其后的代码
6. “#ifndef”:如果后面的常量未被定义,则返回true,编译其后的代码
7. “#undef”:撤销已定义的宏名
8. “#line”:改变预定义宏LINEFILE的内容
9. “#pragma”:使用该预处理命令可向编译器传送各种指令

ANSI C标准预定义了五个宏名,每个宏名的前后均有两个下划线。
1. “DATE“:当前源程序的创建日期
2. “FILE“:当前源程序的文件名称(包括盘符和路径)
3. “LINE“:当前被编译代码的行号
4. “STDC“:返回编译器是否为标准C,若其值为1表示符合标准C,否则不是标准C
5. “TIME“:当前源程序的创建时间

“#error”是产生错误信息命令
“#error”命令强制编译器停止编译,并输出一个错误信息。

修改编译器设置指令:#pragma
“#pragma”命令的作用是设定编译器的状态,或者指示编译器完成一些特定的动作。格式为”#pragma para“,para是参数,可用的参数有很多,例如:#pragma once :确保头文件被编译一次。

从C99开始,预处理中可以设置参数,看一个例子”#define debug(...) printf(__VA_ARGS__)“,其中,”…”代表一个可以变化的参数列表,使用保留名”__VA_ARGS__“把参数传递给宏。C99 引入了对参数个数可变的函数式宏的正式支持。在宏 `原型" 的末尾加上符号 ... (就像在参数可变的函数定义中), 宏定义中的伪宏VA_ARGS` 就会在调用是 替换成可变参数。

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值