- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
尚辅网 / 1. 宏定义 2. 文件包含 3. 条件编译 4. typedef关键字与宏定义的区别 1.不带参数的宏定义 用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为 #define 标识符 字符串 这就是已经介绍过的定义符号常量。如: #define PI 3.14159 它的作用是指定用标识符PI来代替“3.14159”这个字符串,在编译预处理时,将程序在该命令以后出现的所有的PI都用“3.14159”代替。 这里的定义的标识符又称为宏名。 【例9.1】宏定义命令 #include stdio.h #define PI 3.14159 void main() { float l,s,r,v; printf(input radius:); scanf(%f,r); l=2*PI*r; s=PI*r*r; v=3.0/4*PI*r*r*r; printf(l=%10.4f\ns=%10.4f\nv=%10.4f\n,l,s,v); } 说明:(1)宏名一般习惯用大写字母表示,以便与变量名相区别。 (2)使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量,也增加程序的可修改性。 (3)宏定义不是C语句,不必在行末加分号。 (4)#define命令出现在程序中函数的外面,宏名的有效范围为定义命令之后到本源文件结束。 (5)宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名,可以层层置换。 (7)宏定义是专门用于预处理命令的一个专用名词,它与定义变量的含义不同,只作字符替换,不分配内存空间。 (8)在C程序中,宏定义的定义位置一般写在程序的开头。 (6) 替换文本不能替换双引号中与宏名相同的字符串。 2.带参数的宏定义 不是进行简单的字符串替换,还要进行参数替换。其定义的一般形式为 #define 宏名(参数表) 字符串 字符串中包含在括弧中所指定的参数。如: #define S(a,b) a*b area=S(3,2); 定义矩形面积S,a和b是边长。在程序中用了S(3,2),把3、2分别代替宏定义中的形式参数a、b,即用3*2代替s(3,2)。因此赋值语句展开为 area=3*2; 【例9.3】带参的宏定义 #include stdio.h #define PI 3.1415926 #define S(r) PI*r*r void main() { float a,area; a=3.6; area=S(a); printf(r=%f\narea=%f\n,a,area); } 说明: (1)对带参数的宏的展开只是将语句中的宏名后面括号内的实参字符串代替#define命令行中的形参。但是,如果有以下语句: area=S(a+b);这时把实参a+b代替PI*r*r中的形参r,成为 area=PI*a+b*a+b;请注意在a+b外面没有括弧,显然这与程序设计者的原意不符。 为了得到这个结果area=PI*(a+b)*(a=b) ,应当在定义时,在字符串中的形式参数外面加一个括弧。即 #define S(r) PI*(r)*(r)在对S(a+b)进行宏展开时,将a+b代替r,就成了 PI*(a+b)*(a+b) (2)在宏定义时,在宏名与带参数的括弧之间不应加空格,否则将空格以后的字符都作为替代字符串的一部分。 (3)宏和函数要区别开。 所谓“文件包含”处理是指一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。C语言提供了#include命令用来实现“文件包含”的操作。 #include命令行的形式如下: #include 文件名 或 #include 文件名 在预编译时,预编译程序将用指定文件中的内容来替换此命令行。如果文件名用双引号括起来,系统先在源程序所在的目录内查找指定的包含文件,如果找不到,再到系统指定的目录中去寻找。如果文件名用尖括号括起来,系统到指定的标准目录中去寻找。 1.用typedef 规定新类型的方法 Typedef?用于将一个标识符声明成某个数据类型的别名,然后将这个标识符当作数据类型使用。 类型定义的语法形式为: typedef 已存在的类型 新的类型 例如: typedef int INTEGER; typedef float REAL; 指定用ENTEGER 代表int类型,REAL 代表float. 此时下面两行等价: (1) int x, y; (2) INTEGER x, y; 2.typedef关键字与宏定义的区别 typedef是一关
您可能关注的文档
- C语言程序设计刘莹第2章节.ppt
- C语言程序设计刘莹第3章节.ppt
- 九年级化学上册第三单元课题三元素课件共39张.ppt
- C语言程序设计刘莹第4章节.ppt
- C语言程序设计刘莹第5章节.ppt
- C语言程序设计刘莹第6章节.ppt
- 九年级历史第5课_伟大的十月革命.ppt
- C语言程序设计刘莹第7章节.ppt
- C语言程序设计刘莹第8章节用户标识符的作用域和存储类别.ppt
- C语言程序设计刘莹第9章节结构体与其他构造类型上交.ppt
- C语言程序设计实例教程潘志安朱运乔余小燕第10章节指针.ppt
- C语言程序设计实例教程潘志安朱运乔余小燕第11章节结构体共用体及枚举类型.ppt
- C语言程序设计实例教程潘志安朱运乔余小燕第12章节文件I/O.ppt
- C语言程序设计实用教程周虹课件第1章节程序设计及C语言概述.ppt
- C语言程序设计实用教程周虹课件第2章节C语言的基本数据及其运算.ppt
- C语言程序设计实用教程周虹课件第11章节位运算.ppt
- C语言程序设计实用教程周虹课件第12章节文件.ppt
- C语言程序设计孙淑霞罗奕主编C语言程序设计09763第八章节.ppt
- C语言程序设计孙淑霞罗奕主编C语言程序设计09763第二章节.ppt
- C语言程序设计孙淑霞罗奕主编C语言程序设计09763第九章节.ppt
最近下载
- 17J008 挡土墙(重力式、衡重式、悬臂式)(必威体育精装版).pdf VIP
- 雨污分流改造工程施工组织设计方案.pdf VIP
- 第九版儿科学配套课件-6.2-正常足月儿和早产儿的特点与护理.ppt VIP
- T_CACM 1601-2024 笑病中医诊疗指南.docx VIP
- 矿山三级(二级)矿量管理办法.doc VIP
- T_CACM 1583-2024 百合病中医诊疗指南.pdf VIP
- 趣味生物知识竞赛100选择题附答案.pdf VIP
- T_CACM 1584-2024 卑惵中医诊疗指南.pdf VIP
- 2025年第二批陕西延长石油集团所属单位内部遴选及选聘81人笔试参考题库附带答案详解.docx
- T_CACM 1585-2024 产后神志异常中医诊疗指南.pdf VIP
文档评论(0)