预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共27页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学10.1文件包含“文件包含”示意图假如file1.c文件中的内容如下: inta,b,c; floatm,n,p; charr,s,t; file2.c文件的内容如下: #include"file1.c" main() {……} 经过编译预处理后,file2.c文件的内容为: inta,b,c; floatm,n,p; charr,s,t; main() {……} 包含文件的查找方法:在使用编译预处理#include语句时,需要注意的几个问题如下:根据经验的总结,以下内容放在头文件中比较合适。需要说明的是C语言对此没有强行的规定。 ①包含指令(嵌套),如: #include<stdio.h.> ②函数声明,如: externfloatfun(floatx); ③类型说明,如: enumbool{false,true} ④常量定义,如: constfloatpi=3.14159; ⑤数据声明,如: externintm; ⑥宏定义,如: #definePI3.1415926;10.2.1无参宏定义引例:宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。在宏展开中由预处理程序层层代换。 例如: #defineN2 #defineMN+1 #defineNUM(M+1)*M/2 ⑵宏名用做代替一个字符串,不作语法检查;说明:10.2.2有参宏定义注意:#defineMAX(x,y)x>y?x:y main() { intn1,n2; floatf1,f2; scanf("%d%d%f%f",&n1,&n2,&f1,&f2); printf("maxi=%dmaxf=%f",MAX(n1,n2),MAX(f1,f2)); }10.2.3终止宏定义10.2.4带参数的宏替换与函数的主要区别例宏替换与函数调用的区别。 #defineMUL(a,b)a+b intm(inta,intb) { return(a*b); } main() { printf(“%d\n”,MUL(1+2,5-4)); printf(“%d\n”,m(1+2,5-4)); } 程序的运行结果为: 7 3 原因显而易见,调用MUL宏时,计算的表达式是1+2*5-4,而调用m函数时,计算的表达式的是(1+2)*(5-4)。10.3条件编译#ifdef标识符 程序段1 #endif例1:#ifdefTURBO #defineintint #else #defineintshort #endif二、使用常量表达式的值作为编译条件带有#elif的条件编译程序举例:用同一程序实现大小写字母转换(若定义UP转换为大写)例输入一个口令,根据需要设置条件编译,使之在调试程序时,按原码输出;在使用时输出“*”号。例#ifdef和#ifndef的使用。 #defineTED10 main() { #ifdefTED printf(“hited\n”); #else printf(“hianyone\n’); #endif #ifndefRALPH printf(“RALPHnotdefined\n”); #endif } 10.4小结