C语言中如何找函数原型?为什么原型有2个参数却使用3个···

编译器为gcc;
函数原型为 function_A(int a, int b);
声明却是 extern function_A(int a, int b, int c);
具体用的时候是 function_A(int a, int b, 0);
可以这么做吗?求解释

extern指的是引用其他文件的相关内容,如函数,变量
你这里的extern function_A(int a,int b,int c)应该是其他文件里的函数,跟本文件里的function_A不是同一个函数
通过这种方式,相当于本文件里有两个function_A函数,它们形成了一组“重载函数”

希望对你有帮助
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-25
二楼的解释很正确,extern声明的是外部参照型变量或函数,具体定义在另一个文件里面。定义函数时,可以使用相同的函数名,但是它们的参数列表应该保持不同,这样构成函数重载。在实际使用的时候,编译器会根据你的参数列表判断出具体是调用哪一个函数体。一楼的说法很不正确,有时候函数的功能,不,应该说目的是一样的,但是操作的对象不一样,也就是参数类型或数目可能不一样,这个时候使用重载函数是一个很好的办法。
第2个回答  2012-08-25
你这里,声明的的函数function_(int a,int b,int c);与函数function_A(int a,int b);不是一个函数,在具体用的时候是带3个参数,也就是声明函数中的function_(int a,int b,int c); 而不是你的function_A(int a, int b); 也就是说,你这里function_A(int a, int b); 其实是没有用到的。有与没有其实是没有影响的。因为根本就没有调用它。
第3个回答  2012-08-16
没试过,不过应该是会报错吧!
这么搞也没什么意义,大不了原型再加一个参数本回答被网友采纳