- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序设计第09章-预处理命令
第9章 本章主要内容 1-宏定义 2- “文件包含”处理 3-条件编译 从内容来看,C语言源程序由两部分构成: 一部分是C语言的各种语句,包括变量定义、函数声明、函数调用等等; 另一部分则是预处理命令。 预处理,顾名思义,就是在源程序正式编译之前要处理的一些命令。 C的预编译处理程序首先读入程序员写的源程序,经过预处理后形成新的源程序,然后再将这个新形成的源程序输入给C的编译器进行编译。 为了与一般的C语句相区别,C语言的预处理命令都以“#”号开头。C语言的预处理命令包括: (1)宏定义 (2)文件包含 #define #include #undef (3)条件编译 (4)其它 #if #line #ifdef #error #else #pragma #elif #endif 本章只介绍前三种预处理命令的用法。 1- 宏定义 由于预编译器处理宏时,并不对宏的内容文本进行任何处理,仅仅是一个文本替换操作,因此,程序员在定义宏时,如果宏是一个表达式,一定要将这个表达式用()括起来,否则可能会引起非预期的结果。例如,下表左边的程序在定义宏时,没有将宏表达式括起来: 例一 例二 由于带参宏在使用时,参数大多是表达式,宏内容本身也是表达式,因此,不但需要将宏参数用()括起来,而且还要将整个宏内容括起来。否则可能引起非预期结果。例如,下面的程序中,MULTI宏的参数没有括起来: 2- “文件包含”处理 例如,如果有文件a.h,它的内容如下: 源程序文件a.c用#include命令包含了a.h文件 条件编译命令大致有3种: 1、#if 条件1 源程序段1 #elif 条件2 源程序段2 #else 源程序段3 #endif 其中, elif是else if的缩写。 #elif和#else可以没有,但#endif必须存在,它是#if命令的结尾。 #elif命令可以有多个。 if后面不能有扩号。 当某个条件被满足时,这个条件下面的源程序段是有效的,否则无效。 每个条件必须是一个常量表达式,通常会用到宏名。 命令都独占一行。 2、#ifdef 宏名1 源程序段1 #elif defined 宏名2 源程序段2 #else 源程序段3 #endif 其中, #elif和#else可以没有,但#endif不能没有,它是#ifdef命令的结尾。 “#ifdef 宏名”的含义是判断是否定义了宏,它等价于#if defined(宏名) 3、#ifndef 宏名 源程序段1 #else 源程序段2 #endif 其中, #else可以没有,但#endif不能没有,它是#ifndef命令的结尾。 三种条件编译命令的对比 1、#if 条件1 源程序段1 #elif 条件2 源程序段2 #else 源程序段3 #endif 作业 第九章(P217) 9.1 9.2 9.3 9.4 * sbchen,Ph.D. Email: joysbc@163.com 将下列程序中的预处理命令标出来 #include stdio.h void main() { int a; #define NUM 20 int b=NUM; #define OK scanf(%d,a); #if(a0) printf(%d+%d=%d\n,a,NUM,a+b); } 不带参数的宏替换 1、形式: #define 宏名 宏体 其中:①、#define是宏定义命令; ②、宏名为C语言标识符,它是所定义的符号常量的名字; ③、宏体为字符串形式的常量表达式,可以包含任意字符。 2、功能:将程序中所有出现的宏名用宏体替换(通常用于定义符号常量) 3、例: #define PI 3.1415926 #define LETTER abcdefg 程序员输入的源程序 #define NUM1 2 #define NUM2 5 #define BASE NUM1+NUM2 void main() { int a=3,b=3; a*=BASE; b=b*BASE; printf(a=%d,b=%d\n,a,b); } 预编译器处理后的新源程序 voi
您可能关注的文档
- 第一章、管理与管理学.ppt
- 1.银行询证函.doc
- FSC十大原则和55个标准.doc
- 10的加减法(戴清清).ppt
- 实践教学选题推荐.doc
- 7A(预备课程).doc
- 数电一章.ppt
- 第16期安全生产简报1.doc
- 12年5月金昌鑫华100万吨/年焦化项目监理月报1219oc.doc
- 第四次网页设计作业.doc
- 《GB/T 29025.1-2025粒度分析 电阻法 第1部分:小孔管法》.pdf
- 《GB/T 37034.2-2025航空电子过程管理 防伪 第2部分:来源于非授权经销商电子元器件的管理》.pdf
- 中国国家标准 GB/T 37034.2-2025航空电子过程管理 防伪 第2部分:来源于非授权经销商电子元器件的管理.pdf
- GB/T 6113.102-2025无线电骚扰和抗扰度测量设备和测量方法规范 第1-2部分:无线电骚扰和抗扰度测量设备 传导骚扰测量的耦合装置.pdf
- GB/T 13609-2025天然气 气体取样.pdf
- 中国国家标准 GB/T 13609-2025天然气 气体取样.pdf
- 《GB/T 13609-2025天然气 气体取样》.pdf
- GB/T 19629-2025医用电气设备 X射线诊断影像中使用的电离室和(或)半导体探测器剂量计.pdf
- 《GB/T 19629-2025医用电气设备 X射线诊断影像中使用的电离室和(或)半导体探测器剂量计》.pdf
- 中国国家标准 GB/T 19629-2025医用电气设备 X射线诊断影像中使用的电离室和(或)半导体探测器剂量计.pdf
有哪些信誉好的足球投注网站
文档评论(0)