- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 第10章 编译预处理 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 编译预处理 文件包含 宏定义 条件编译 10.1 文件包含 1.命令的一般形式 格式1: #include 文件名 格式2: #include 文件名 文件包含是将指定的某个源文件的内容全部包含到当前文件中。用include命令实现。 格式1:预处理程序仅在C所在目录下查找指定文件 格式2:预处理程序首先在当前目录中查找指定文件 若找不到再到C所在目录中查找。 #define 宏名 字符串 宏定义的功能: 在进行编译前,用字符串原样替换程序中的宏名。 这个替换过程称为“宏替换”或“宏展开”,字符串也称为替换文本。 一般格式: 10.2 不带参数的宏定义 #define PI 3.14 #define S PI*r*r #define V 4*S*r/3 main( ) { float r; printf(\nInput r:); scanf(%f,r); printf(S=%.2f V=%.2f\n,S,V); } 宏定义的作用域是从定义处开始到源文件结束, 但根据需要可用undef命令终止其作用域。形式为: #undef 宏名 #define YES 1 main() { printf(%d,YES); max(); } #undef YES #define YES 0 max() { printf(%d,YES); } 定义形式: #define 宏名(形参表) 字符串 功能: 用宏名后圆括号中的实参替换字符串中的形参 把源程序中所有带参数的宏名用宏定义中的字符串替换 10.3 带参数的宏定义 不能加空格 #define S(a,b) a*b ……….. area=S(3,2); 宏展开: area=3*2; 引用形式: 宏名(实参表) #define S (r) PI*r*r 相当于定义了不带参宏S,代表字符串“(r) PI*r*r” 例: #define POWER(x) x*x x=4; y=6; z=POWER(x+y); 宏展开: z=x+y*x+y; 一般写成: #define POWER(x) ((x)*(x)) 宏展开:z=((x+y)*(x+y)); 形参用实参换,其它字符保留, 宏体及各形参外一般应加括号() 练习: #define MA(x) x*(x-1) main( ) { int a=1,b=2; printf(%d\n, MA(1+a+b)); } 输出结果:8 注意:带参数的宏定义与函数是不同的! 函数调用是在运行时处理的,先求表达式的值,然后代入临时分配的形参, 有类型问题有返回值。 函数调用不改变源程序。 宏展开则是在预编译时进行的,只将实参字符置换对应的形参,不分配单元,不进行值的传递,没有类型问题, 也无返回值的概念。 宏展开后源程序发生变化。 本质上宏展开仅仅是字符序列的替换,由编译系统对替换后字符序列进行解释和语法检查,只占编译时间。 格式1: #ifdef 标识符 程序段 1 #else 程序段 2 #endif 10.4 条件编译 若所指定的标识符已经被#define定义,则编译程序段1,否则编译程序段2
您可能关注的文档
- C语言程序设计基础 作者 马华 李玉娟 第1章.ppt
- C语言程序设计基础 作者 马华 李玉娟 第2章 基本C语言.ppt
- C语言程序设计基础 作者 马华 李玉娟 第3章 选择结构.ppt
- C语言程序设计基础 作者 马华 李玉娟 第4章 循环结构程.ppt
- C语言程序设计基础 作者 马华 李玉娟 第5章 函数.ppt
- C语言程序设计基础 作者 马华 李玉娟 第6章 数组.ppt
- C语言程序设计基础 作者 马华 李玉娟 第7章 指针.ppt
- C语言程序设计基础 作者 马华 李玉娟 第9章 文件.ppt
- C语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 作者 李丽娟 C第2版(第2章_基本语句).ppt
- C语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 作者 李丽娟 C第2版(第4章_分支结构).ppt
最近下载
- 2021年美国肝病学会实践指导:腹水和肝肾综合征的诊断、评估和管理.pptx
- 中国抑葡萄糖苷酶项目创业计划书.docx
- 部编版语文四年级上册第二单元测试题.doc VIP
- 2025年电气工程师职业资格(中级)《电力系统分析与计算》备考题库及答案解析.docx VIP
- 2025年中国注射用环磷腺苷项目创业计划书.docx
- 【课件】相反数+课件-2024-2025学年人教版数学七上.pptx VIP
- 江西省南昌市2023至2024学年高一上学期1月选课走班调研检测(期末)化学试题附参考答案(解析).pdf VIP
- 2025年扬中锂电铜箔项目可行性研究报告.docx
- 部编版语文四年级上册全册教案.pdf VIP
- 高中政治教学的经验分享课件.pptx VIP
文档评论(0)