首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一些 c 编译链接中不明白的地方解决思路

2012-09-18 
一些 c 编译链接中不明白的地方比如我有一个源文件里面有一个函数比如 是 void show(); 然后工程里面加载

一些 c 编译链接中不明白的地方
比如我有一个源文件里面有一个函数
比如 是 void show(); 然后工程里面加载了两个动态库,动态库里面分别有两个 void show();
那么我在程序里调show();究竟是调用那一个函数show();是自己工程里的源码show();还是两个动态库里的某一个
show()?编译器是按什么规则来决定调用那一个函数的?是随机的还是按某种规律来决定的?

[解决办法]

探讨
我在vc工程里自定义了一个 void printf(char *p) ; 结果编译也没出错。我的担心是一个操作系统这么多API。加上一个项目引进来这么多动态库,里面这么多函数。如果一不小心,自己写的函数会出现相同的API名字,那么会出现什么样的后果,一直很担心这个问题,所以现在自己定义一个函数,都有点怕,怕和别人重名,你明白我的意思吗?特别这么多外来库,你没可能每一次都命名一个函数前,先查找所有的系统api,再查自己工程的dll里面的api,然后再定义一个不会和别人相同的函数名字吧?

[解决办法]
不报错是可能的
没有警告也是有可能的

都和编译器版本以及使用的编译器或者链接器开关有关

反正我在1L已经说了正确答案

热点排行