C原型功能

前端之家收集整理的这篇文章主要介绍了C原型功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
作为C的初学者,我可以理解文件中对函数原型的需求,但我不确定几件事情.

首先,在main之外的每个函数调用是否需要原型声明?有什么条件可以改变吗?

其次,您是否需要单独的函数原型来进行方法重载?

解决方法

C中的函数调用不需要原型可见,但强烈建议在原型范围内使用正确的原型.

这样做的原因是,如果在执行默认函数参数提升后函数定义与函数参数的类型不匹配,则很可能会得到未定义的行为.

正确的原型可见意味着编译器可以检查函数调用的参数,并警告程序员是否存在不匹配.

C不允许函数重载,因此您只能为任何函数名称使用单个原型.

默认参数促销可能会导致意外不匹配.

例如.

int main(int argc,char **argv)
{
    short s = 5;
    float f = 2.3f;
    x(s,f);     // x implicitly declared; default argument promotions performed
    return 0;
}

int x(short t,float g)  // Error: called with an int and a double
{
    return (int)(t + g);
}

函数调用中,因为x没有可见原型(尚未),s将被提升为int,f将被提升为double.这些是默认参数促销.然后,当使用带有short和float的原型定义函数时,这会导致不匹配,即使这些是传入的参数的原始类型.

采用可变数量参数的函数(即use,…语法)必须始终在调用它们的位置具有可见原型.

猜你在找的C&C++相关文章