1 / 40
文档名称:

清华大学_C语言_谭浩强_第8章.ppt

格式:ppt   页数:40
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

清华大学_C语言_谭浩强_第8章.ppt

上传人:化工机械 2012/6/18 文件大小:0 KB

下载得到文件列表

清华大学_C语言_谭浩强_第8章.ppt

文档介绍

文档介绍:第8章编译预处理
第8章编译预处理
结构体类型的概述
宏定义
文件包含
条件编译
编译预处理命令
1. 编译预处理
2. 编译预处理命令
1. 编译预处理
预处理由专门的预处理程序负责完成。
当对一个源文件进行编译前,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。中间不需要人为干预。
编译预处理是由编译系统中的预处理命令进行的
C语言提供了多种预处理功能,如文件包含、宏定义、条件编译等。
2. 编译预处理命令
编译预处理命令主要有三种,即:宏定义、文件包含、条件编译。
所有的编译预处理命令均以#符号开头,各占用一个单独的书写行,末尾不用分号作结束符。
编译预处理命令可以出现在程序的任何位置,其作用域是自出现的地方开始直到源程序的末尾。
宏定义





所谓无参宏就是宏名后不带任何参数。其定义的一般形式为:
#define 宏名字符串(或数值)
其中的“#”表示这是一条预处理命令, C语言中凡是以“#”开头的命令都为预处理命令。“define”为宏定义命令。
宏定义在使用中应注意以下几点:
(1)宏名的前后应有空格。
(2)宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名。
(3)宏定义命令其后不要跟分号。
(4)字符串(或数值)中如果出现运算符号,则要注意替换后的结果,通常可以在合适的位置加上括号。
宏应用举例。
#define N (8*x+x*x)
/*定义N来替代表达式(8*x+x*x)*/
main()
{ int s,x;
printf("please input a number: ");
scanf("%d",&x);
s=5*N+6*N+7*N; /*宏调用*/
printf("s=%d\n",s);
}
程序的运行情况为:
please input a number:4↙
s=864
分析:上例程序中首先进行宏定义,定义N来替代表达式(8*x+x*x),在s=5*N+6*N+7*N中对N进行了宏调用。经宏展开后该语句变为下面的形式:
s=5*(8*x+x*x)+6*(8*x+x*x)+7*(8*x+x*x);
如果在宏定义中表达式(8*x+x*x)两边的括号没有了,预处理时将会变成:
s=5*8*x+x*x+6*8*x+x*x+7*8*x+x*x;
显然发生了错误,因此加括号和不加括号的意思和答案完全不一样。所以在进行宏定义时必须十分注意。应保证在宏代换之后不发生错误。
(5)宏定义必须写在函数之外,其作用域为宏定义命令起到源程序结束。如要终止其作用域可使用
# undef命令。
例如图8-1所示:
#define PI
main()
{

}
#undef PI
hans()
{

}
图8-1种的PI只在main函数中有效,在函数hans中是无效的。

最近更新

高校党委改革建议书 7页

高效行政流程建议书 5页

高效自动排课项目建议书 5页

高效水质自动监测建议书 6页

高县旅游提升建议书 6页

高三女孩学习方法建议书 5页

餐饮菜单创新建议书 6页

食品添加剂项目推进建议书 6页

领导对员工提升建议书 5页

左心衰患者的康复指导与训练 77页

2024年淮北师范大学马克思主义基本原理概论期.. 13页

2024年温宿县幼儿园教师招教考试备考题库附答.. 31页

2024年湖北省纺织职工大学马克思主义基本原理.. 13页

2024年湖南应用技术学院马克思主义基本原理概.. 13页

2024年湛江科技学院马克思主义基本原理概论期.. 12页

2024年甘肃医学院马克思主义基本原理概论期末.. 13页

2024年益阳教育学院马克思主义基本原理概论期.. 12页

2024年福建卫生职业技术学院马克思主义基本原.. 13页

2024年紫阳县招教考试备考题库及答案解析(夺.. 31页

2024年美姑县招教考试备考题库带答案解析(夺.. 31页

2024年苏州农业职业技术学院马克思主义基本原.. 12页

2024年菏泽生物医药职业学院马克思主义基本原.. 12页

2024年衡水职业技术学院马克思主义基本原理概.. 13页

2024年西安工商学院马克思主义基本原理概论期.. 12页

2024年象州县幼儿园教师招教考试备考题库含答.. 31页

2024年贵阳学院马克思主义基本原理概论期末考.. 12页

2024年辽宁商贸职业学院马克思主义基本原理概.. 12页

2024年连江县幼儿园教师招教考试备考题库及答.. 31页

2024年邱县幼儿园教师招教考试备考题库含答案.. 31页

2024年郴州智能科技职业学院马克思主义基本原.. 12页