如果在不同文件里定义了多个相同的全局函数,会如何调用呢?
我在其他地方利用extern使用这个全局函数,但是有同事在另一个文件里也定义了相同的全局函数,我调用的时候是会去调用哪一个呢?依赖什么样的标准呢?
[解决办法]
编译的时候就失败了。会提示某某函数已经定义了
[解决办法]
如果他写的完全是另外一个程序,
则不会有任何问题.
比如一般你们两个都有一个 theApp 全局变量.
如果你们写的源代码是同一个工程,
将无法通过编译,所以不存在执行哪个的问题.
如果你们其中之一写的是库模块,
将无法通过链接,所以不存在执行哪个的问题.
如果都没有出错,
那你们两个的函数一定是只有名字相同,而参数不同,
这是函数重载, 将调用参数最匹配的那个.
比如
// 函数1
int FunAdd(int x1, int x2)
{
printf( "Call Fun 1\n ");
return x1 + x2;
}
// 函数2
int FunAdd(double x1, double x2)
{
printf( "Call Fun 2\n ");
return x1 + x2;
}
如果调用
int i_add = FunAdd(100,200);
将调用 函数1
double f_add = FunAdd(100.0,200.0);
将调用函数2