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

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

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

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

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

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

第10章编译预处理编译预处理10.1文件包含#define宏名字符串#definePI3.14 #defineSPI*r*r #defineV4*S*r/3 main() { floatr; printf("\nInputr:"); scanf("%f",&r); printf("S=%.2fV=%.2f\n",S,V); } 宏定义的作用域是从定义处开始到源文件结束, 但根据需要可用undef命令终止其作用域。形式为:定义形式:例: #definePOWER(x)x*x x=4;y=6; z=POWER(x+y); 宏展开:z=x+y*x+y; 一般写成: #definePOWER(x)((x)*(x)) 宏展开:z=((x+y)*(x+y));练习: #defineMA(x)x*(x-1) main() {inta=1,b=2; printf("%d\n",MA(1+a+b)); }注意:带参数的宏定义与函数是不同的!格式1: #ifdef标识符 程序段1 #else 程序段2 #endif#include<stdio.h> #defineMA1 main() { inta=10; #ifdefMA a=a-10; printf("%d\n",a); #else a=a+10; printf("%d\n",a); #endif } 10.4条件编译#include<stdio.h> #defineMA1 main() { inta=10; #ifndefMA a=a-10; printf("%d\n",a); #else a=a+10; printf("%d\n",a); #endif } 10.4条件编译#include<stdio.h> #defineLETTER0 main() { charstr[20],c; inti=0; gets(str); while(c=str[i]) { i++; #ifLETTER if(c>='a'&&c<='z') c=c-32; #else if(c>='A'&&c<='Z') c=c+32; #endif printf("%c",c); } }