如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第5章编译预处理高级语言编译过程宏定义#definePRICE30voidmain(void){intnum,total;/*定义变量*/num=10;/*变量赋值*/total=num*PRICE;cout<<"total=“<<total<<endl;}1、宏展开只是一个简单的“物理”替换,不做语法检查,不是一个语句,其后不加分号“;”3、对程序中用双引号括起来的字符串内容,即使与宏名相同,也不进行置换。#defineR3.0#definePI3.1415926#defineL2*PI*R#defineSPI*R*Rvoidmain(void){cout<<“L=“<<L<<“S=”<<S<<endl;}带参数的宏定义按#define命令行中指定的字符串从左至右进行置换宏名,字符串中的形参以相应的实参代替,字符串中的非形参字符保持不变。#definePI3.1415926#defineS(r)PI*r*rvoidmain(void){floata,area,b;a=3.6;b=4.0;area=S(a);cout<<“r=“<<a<<“\narea=”<<area<<endl;}#definePI3.1415926#defineS(r)PI*r*rvoidmain(void){floata,area,b;a=1;b=2;area=S(a+b);cout<<“r=“<<a<<“\narea=”<<area<<endl;}定义宏时在宏名与带参数的括弧间不能有空格。#defineA3#defineB(a)((A+1)*a)执行x=3*(A+B(7));后,x的值为:文件包含注意:条件编译条件编译有以下几种形式:2、#ifndef标识符程序段1#else程序段2#endif3、#if表达式程序段1#else程序段2#endif以下程序的运行结果是: