|
发表于 2006-11-12 14:46:04
|
显示全部楼层
Post by szzszzszz925
我在看一个代码
发现在 模块文件中的 模块初始化函数(init_module)调用了 一个函数,这个 被调用的函数 是 另外一个文件中的,可古怪的是我发现竟然两个文件的关联语句,如#include" "或者extern之类,我屏蔽掉一些无关的语句,然后编译,也没有提示 那个别调函数来历不明的信息
真是奇怪啊
本人初学
是不是在模块初始化中调用的函数并不需要在文件中指明来源啊(用#include之类)
请高手赐教!!
谢谢!!
动态库:
无论在哪个系统,动态库载入最多只分为数据段和函数符号段。
载入动态库符号的时候获得的是“地址”。
所以无非是声名这个需要调用的函数指针所对应的函数参数原形,而不需要其它关联。
应用程序:
一些版本的 gcc 编译时若没有 -Wall 等标志,
它默认是取 “函数返回值为 int, 参数及其原形为实际调用的相应值”,只在链接时才检查是否有错。
所以对于这种情况,没有关联也可以编译,但是习惯不好... |
|