日期:2014-05-16  浏览次数:20505 次

Linux 程序函数问题。
int func1(int m,in n)
{
    ......
}

int func2()
{
    int func1(int m,in n);
     int q,w;
     func1(q,w);//这个func1能调用到外面的func1函数吗?不会被里面那个屏蔽掉吗?
         //不过程序确实调用到了,运行无错误,只是我不理解啊?
}
linux

------解决方案--------------------

int func2()
{
    int func1(int m,in n);
     int q,w;
     func1(q,w);//这个func1能调用到外面的func1函数吗?不会被里面那个屏蔽掉吗?
         //不过程序确实调用到了,运行无错误,只是我不理解啊?
}


func2函数体内出现的 “int func1(int m,in n); ”是一个函数声明而已,其类型与func2之上定义的func1函数相同,所以没有问题。

如果你改成“int func1(int m, int n, int x);" 编译会报错。
------解决方案--------------------
函数里面的只是一个声明而已。还有一个有意思的是,C语言的函数里面还可以定义函数,你可以吧func2里面的func1改成定义,他就会覆盖。