C/C++函数缺省参数是否实际传入如何判断?

如何象 VB 的 IsMissing 函数判断缺省参数是否传入?如

void func(int a, int b=0, ...){
// b 是否真地传入了?
}

C/C++ 函数没有缺省参数。

C/C++函数 声明和定义时用 形参。调用 运行时 用 实参。
实参的值,需要在调用前给定,如果它是全局量,初始化为0,没有默认值。

C++ 允许 有同名 函数,同名 函数 用 参数个数 和 参数类型 区分。
例如:area(float a, float b){}; area(float r){} ;
调用时,
只给1个实参,就调用后者area(r),不会调用 area(float a, float b){};
给2个实参,就调用前者area(a,b).
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-27
应该是只能判断b是否0,但是没有办法确定是否传入或者是编译时填进去的
第2个回答  2012-10-27
如果只有一个函数func(int a, int b=0,....),那么你在调用这个函数的时候写func(1),那么传入了b以及后面形参的默认值。

如果有两个函数func(int a, int b=0,....)和func(int a),如果在调用函数时写func(1),将会优先匹配只有一个参数的函数。
第3个回答  2012-10-27
用输出函数进行调试
相似回答