第10章 编译预处理课件.ppt
《第10章 编译预处理课件.ppt》由会员分享,可在线阅读,更多相关《第10章 编译预处理课件.ppt(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第10章 编译预处理-2-宏定义宏定义文件包含文件包含条件编译条件编译 本章教学内容本章教学内容本章教学目标本章教学目标 掌握带参与不带参宏定义的使用掌握带参与不带参宏定义的使用掌握文件包含的使用掌握文件包含的使用了解条件编译了解条件编译-3-10.1宏定义宏定义 在在C语言中所有的预处理命令都以语言中所有的预处理命令都以”#”开头,宏定义是预处理指令的开头,宏定义是预处理指令的一种,以一种,以#define开头开头。在在C语言源程序中允许用一个标识符来表示一个语言源程序中允许用一个标识符来表示一个字符串,称为字符串,称为“宏宏”。被定义为。被定义为“宏宏”的标识符称为的标识符称为“宏名宏名”
2、。在预处。在预处理过程中,宏调用会被展开为对应的字符串,这个过程称为理过程中,宏调用会被展开为对应的字符串,这个过程称为“宏代换宏代换”或或“宏展开宏展开”。 宏的使用有很多好处,不仅可以简化程序的书写,而且便于程序的宏的使用有很多好处,不仅可以简化程序的书写,而且便于程序的修改和移植,使用宏名来代替一个字符串,可以减少程序中重复书写某修改和移植,使用宏名来代替一个字符串,可以减少程序中重复书写某些字符串的工作量。些字符串的工作量。 根据宏定义中是否有参数,可以将宏分为根据宏定义中是否有参数,可以将宏分为不带参数的宏定义不带参数的宏定义与与带参带参数的宏定义数的宏定义两种,下面分别讨论这两种宏
3、的定义与调用。两种,下面分别讨论这两种宏的定义与调用。-4-10.1.1 不带参数的宏定义不带参数的宏定义 不带参数的宏的宏名后面没有参数,不带参数的宏定义又称简单宏不带参数的宏的宏名后面没有参数,不带参数的宏定义又称简单宏定义。其定义的一般形式为:定义。其定义的一般形式为: #define 宏名宏名 字符串字符串 其中,其中,“#”表示预处理命令。表示预处理命令。define是关键字,表示该命令为宏定是关键字,表示该命令为宏定义。为了与一般的普通变量相区别,宏名一般使用大写。义。为了与一般的普通变量相区别,宏名一般使用大写。“字符串字符串”一一般为常量、表达式或字符串。般为常量、表达式或字符
4、串。 在进行预处理时,系统会将程序中的在进行预处理时,系统会将程序中的“宏名宏名”用用“字符串字符串”来替换。来替换。-5-10.1.1 不带参数的宏定义不带参数的宏定义【例【例10-1】不带参数的宏定义的例子】不带参数的宏定义的例子。 #include #define M (a*a+4*a) int main() int a, b; scanf(%d,&a); b=M*M+3*M+5; printf(b=%dn,b); return 0;-6-带参数的宏定义带参数的宏定义 在C语言中,宏定义可以不带参数,也可以带参数。 在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。 带参数宏定
5、义的一般形式为: #define 宏名宏名(形参表形参表) 字符串字符串 带参数宏调用的一般形式为: 宏名宏名(实参表实参表); 带参数的宏调用时,不仅简单地用字符串代替宏名,而且要用实参代换对应的形参。 例如: #define M(x) 5*x+x*x /*宏定义宏定义*/ f=M(8); /*宏调用宏调用*/ 在宏调用时,用实参8去代替形参x,经过预处理宏展开后f=5*8+8*8。-7-带参数的宏定义带参数的宏定义(续续)【例【例10-2】带参数的宏定义举例。】带参数的宏定义举例。 #include #define M(x,y,z) x*y+z int main( ) int a=1,b=
6、2, c=3; printf(“%dn”,M(a+b,b+c,c+a); return 0; -8-带参数的宏定义带参数的宏定义(续续)【例例10-3】用宏来定义多个语句的例子。】用宏来定义多个语句的例子。 #include #define M(x,y,z) x=a*m; y=a*n; z=a*h int main() int a, m, n, h, q1, q2, q3; a=5,m=8,n=7,h=10; M(q1,q2,q3); printf(“q1=%dnq2=%dnq3=%dn”,q1,q2,q3); return 0; -9-10.2 文件包含文件包含 在在C语言中文件包含是指一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第10章 编译预处理课件 10 编译 预处理 课件
限制150内