您的位置:首页 > 其它

默认参数和占位参数

2016-02-21 18:46 218 查看
C++中的const常量可以替代宏常数定义,如:

const int A = 3; è #define A 3

C++中是否有解决方案替代宏代码片段呢?(替代宏代码片段就可以避免宏的副作用!)

C++中推荐使用内联函数替代宏代码片段

C++中使用inline关键字声明内联函数

内联函数声明时inline关键字必须和函数定义结合在一起,否则编译器会直接忽略内联请求。

默认参数

C++中可以在函数声明时为参数提供一个默认值,

当函数调用时没有指定这个参数的值(或根本没指定参数),编译器会自动用默认值代替

 

函数默认参数的规则

只有参数列表后面部分的参数才可以提供默认参数值

一旦在一个函数调用中开始使用默认参数值,那么这个参数后的所有参数都必须使用默认参数值

 

函数占位参数

/*

函数占位参数

占位参数只有参数类型声明,而没有参数名声明

一般情况下,在函数体内部无法使用占位参数

*/

 

int func(int a, int b, int )

{

return a + b;

}

 

int main01()

{

printf("func(1, 2, 3) = %d\n", func(1, 2, 3));

 

printf("Press enter to continue ...");

getchar();

return 0;

}

 

默认参数和占位参数混搭风

/*

可以将占位参数与默认参数结合起来使用

意义

为以后程序的扩展留下线索

兼容C语言程序中可能出现的不规范写法

*/

 

//C++可以声明占位符参数,占位符参数一般用于程序扩展和对C代码的兼容

int func(int a, int b, int = 0)

{

return a + b;

}

 

int main66()

{

printf("func(10, 20) = %d\n", func(10, 20));

 

printf("Press enter to continue ...");

getchar();

return 0;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: