- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言编译预处理命令
编译预处理命令
文件包含:
把指定的文件插入到预处理命令行所在的位置并取代该命令行,即把指定的文件和当前的源程序文件连接成一个源文件。
#include文件名
在文件包含目录中去查找指定的文件,并将该文件添加到源文件中。
一个被包含的文件中可以含有文件包含命令来包含另一个文件。
#include“文件名”
命令中文件名的位置是当前源文件的位置,若在当前目录中未找到该文件,则再到“包含目录”中去查找。
宏
用一个标识符表示一个字符串,称为宏,被定义为宏的标识符称为宏名。在编译预处理时对程序中所有出现的宏名用宏定义中的字符串去代换,这就是宏替换。它是由系统编译程序时自动完成的。
无参宏定义
#define 标识符 字符串
如
#define PI 3.14
使用宏时要注意:
宏定义是用宏名来表示一个字符串,在宏展开时用字符串取代宏名。
宏定义不是变量定义或语句,在行末不能加分号,如果加上分号则分号也成为字符串的一部分。
宏定义可以出现在程序的任何地方,其作用域是宏定义命令所在位置开始到源程序结束。如果要终止其作用域可使用#undef命令。
宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。在宏展开时将逐层替换。
#define PI 3.1415926
#define AREA PI*y*y
有参宏定义
#define 宏名(形参表) 字符串
对带参数的宏,在调用中不仅要进行宏展开,而且还要用实参去替换形参。
带参宏调用的语法格式如下:
宏名(实参表);
#define M(x) x+1
K=M(3);
K=3+1
定义有参宏时要注意以下几点:
有参宏定义中,宏名和形参表之间不能有空格出现。
在函数中,调用时要把实参的值赋给形参,进行“值传递”。而在带参宏调用中,只是符号替换,不存在值传递问题。
宏定义中的形参只能是标识符,而宏调用中的实参可以是表达式。
宏替换中对实参表达式不做计算直接照原样替换,字符串内的形参通常用括号括起来以避免出错。
在使用宏时不仅要将形式参数用括号括起来,还应将其整体用括号括起来。
#define S(y) ((y)*(y))
条件编译
条件编译可以按不同的条件去编译不同的程序段。
1#ifdef
#ifdef 标识符
程序段1
#else
程序段2
#endif
功能:如果标识符已被#define定义过,则对程序段1进行编译,否则对程序段2进行编译。格式中的#else部分可以没有,即:
#ifdef 标识符
程序段
#endif
2、#ifndef
语法格式如下:
#ifndef 标识符
程序段1
#else
程序段2
#endif
功能与ifdef形式的功能正好相反。
3、#if 常量表达式
#if 常量表达式
程序段1
#else
程序段2
#endif
功能:如果常量表达式的值为真(非0),则对程序段1进行编译,否则对程序段2进行编译,因此可以使程序在不同条件下,完成不同的功能。
上面介绍的条件编译实现的逻辑也可以用条件语句来实现,但是用条件语句将会对整个源程序进行编译,生成的目标代码程序较长,运行时间也较长,采用条件编译则根据条件只编译其中的程序段1或程序段2,生成的目标程序较短。
您可能关注的文档
- 征文类、设计类要求.doc
- 高三数学试卷(下册).doc
- 冀教版四年级英语期中试题.doc
- Makefile两个实验.doc
- 区民政局第十三个党风廉政教育宣传月活动总结.doc
- 工业网络监控解决方案.ppt
- 路桥施工施工标准化作业.doc
- 苦参碱缓释片的制备及释放度研究.docx
- 大学物理实验试卷一.doc
- 《印刷概论》教学大纲(勤工).doc
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)