C中参数的默认值

时间:2012-07-27 19:46:08

标签: c function arguments

假设我在C中有一个函数定义为:

bool check ( int x, int y);

现在,如果我使用check(4);

来调用它

y的价值是什么?

1 个答案:

答案 0 :(得分:7)

这样的代码只有在函数未声明(C89 / 90)或声明没有原型(C89 / 90和C99)的情况下才可能编译。

在任何情况下,行为都将是未定义的。如果调用中使用的提升参数的数量和/或类型与函数定义中使用的参数不匹配,则行为未定义。

  

6.5.2.2函数调用

     

6 [...]如果参数的数量不等于参数的数量,则   行为未定义[...]如果函数是使用不包含原型的类型定义的,则   促销后的参数类型与参数的类型不兼容   促销后,行为未定义