C语言程序设计-第09章 预处理命令.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计-第09章 预处理命令

#include stdio.h int s(); int x,y; main() {int n; x=1;y=2; n=s(); printf(x=%d,y=%d,n=%d,x,y,n);} int s() {int z; x=3;y=4; z=x+y; return(z);} 程序运行后输出:___ 答案: 3,4,7 #include stdio.h int func(int a,int b); void main() {int k=4,m=1,p; p=func(k,m); printf(%d,,p); p=func(0,p); printf(“%d\n”,p)} int func(int a,int b) {static int m=0,i=2; i+=m+1; m=i+a+b; return(m);} A. 8,17 B. 8,16 C. 8,20 D. 8,8 答案: C 第九章 预处理命令 C 语言与其他高级语言的一个重要区别是可以使用预处理命令和具有预处理的功能。 C提供的预处理功能有三种: 宏定义 文件包含 条件编译 分别用宏定义命令、文件包含命令、条件 编译命令来实现。 这些命令都以“#”号开头。 §9.1 宏定义 9.1.1 不带参数的宏定义 1. 形式: #define 标识符 字符串 例如: #define PI 3.14159 作用:指定用标识符PI来代替“3.14159” 说明: 1)宏定义使用宏名代替一个字符串,不做正确性检查。 2)可以用#undef命令终止宏定义的作用域。 例如: #define G 9.8 main( ) { …… } undef G f1( ) 在函数f1中G不起作用 { 宏定义C语句,不必在行末尾加分号。 …… } 所谓编译预处理是指,在对源程序进行编译之前,先对源程序中的编译预处理命令进行处理;然后再将处理的结果,和源程序一起进行编译,以得到目标代码。 二、带参数的宏定义 形式:#define 宏名(参数表) 字符串 例如: #define S(a,b) a*b area=s(3,2); 以3、2分别代替宏定义中的形参a、b, 即用 3 *2 代替S(3,2)。 所以赋值语句展开为: area=3*2; 作用:不是简单的字符串替换,还要进行参数替换。 例如 9.3 #define PI 3.1415926 #define S(r) PI*r*r main( ) {float a,area; a=3.6; area=S(a); /*area=3.1415926*a*a*/ printf(“r=%f\narea=%f\n”,a,area);} 运行结果: r=3.600000 area=40.715038 三、带参的宏定义与函数的区别 函数调用时,要求出实参表达式的值,而宏定义是简单的字符替换。 对于函数中的形参、实参都要定义类型,而宏不存在类型问题。 调用函数只能得到一个返回值,而用宏可以设法得到几个结果。 §9.2 文件包含处理 “文件包含”处理是指一个源文件将另一个源文件的全部内容包含进来。 形式:#include 文件名 标准形式 或 #include “文件名” 例如以前用过的: #include math.h 数学头函数 #include stdio.h 输入/输出头函数 作用:可以节省程序设计人员的重复劳动。 例9、6 (1)文件format.h #define PR pirntf #define NL “\n” #define D “%d” #define D1 D NL #define D2 D D NL #define D3 D D D NL #define D4 D D D D NL #define S “%s” file1.c #define “format.h” main( ) { int a,b,c,d; char string[ ]= “CHINA”; a=1; b=2; c=3; d=4; PR(D1,a); PR(D2,a,b);

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档