函数与编译预处理05

函数与编译预处理05

ID:4141897

大小:165.11 KB

页数:21页

时间:2017-11-29

函数与编译预处理05_第1页
函数与编译预处理05_第2页
函数与编译预处理05_第3页
函数与编译预处理05_第4页
函数与编译预处理05_第5页
资源描述:

《函数与编译预处理05》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、使用参数数目可变的函数时要注意以下几点:1、在定义函数时,固定参数部分必须放在参数表的前面,可变参数在后面,并用省略号“...”表示可变参数。在函数调用时,可以没有可变的参数。2、必须使用函数va_start()来初始化可变参数,为取第一个可变的参数作好准备工作;使用函数va_arg()依次取各个可变的参数值;最后用函数va_end()做好结束工作,以便能正确地返回。3、在调用参数个数可变的函数时,必定有一个参数指明可变参数的个数或总的实参个数。函数的重载所谓函数的重载是指完成不同功能的函数可以具有相同的函数名。C++的编译器是根据函数的实参来确定应该调用哪一个函数的

2、。intfun(inta,intb)voidmain(void){returna+b;}{cout<

3、nta,intb){return(float)cout<>x;cout<

4、(inta,intb)不同的参{returna+b;}数个数voidmain(void){cout<<"3+5="<

5、编译前的替代过程称为“宏展开”。#define标识符字符串#definePRICE30voidmain(void){intnum,total;/*定义变量*/num=10;/*变量赋值*/total=num*PRICE;编译前用30替代cout<<"total=“<

6、G9.8voidmain(void){.....}#undefGintmax(inta,intb){......}3、对程序中用双引号括起来的字符串内容,即使与宏名相同,也不进行置换。4、在进行宏定义中,可以用已定义的宏名,进行层层置换。#defineR3.0#definePI3.1415926#defineL2*PI*R层层置换#defineSPI*R*R层层置换voidmain(void){cout<<“L=“<

7、义的宏floatx,y,area;cin>>x>>y;实参代入后还原area=S(x,y);/*area=x*y;*/宏调用实际参数按#define命令行中指定的字符串从左至右进行置换宏名,字符串中的形参以相应的实参代替,字符串中的非形参字符保持不变。#defineS(a,b)a*b机械地将实参代入宏定义的形参形式area=S(3,3*22)S(a,b)等同于a*bS(3,2)等同于3*2#definePI3.1415926#defineS(r)PI*r*rS(r)PI*r*rvoidmain(void)S(a)PI*a*a{floata,area,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。