学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

函数声明的理解

函数声明的理解

函数声明在使用某个函数的时候,指示当前代码中存在上述的标号(函数名)定义
但是函数声明却并不能知道函数的功能
这个就是说函数只是声明,通知别人已经定义而已吗?
因为我创建了一个静态库,发现对于其对应的函数头文件.h中,我没有把lib中的定义的函数进行声明,却发现当我重新定义一个和这个lib中同名函数的时候,仍旧会发生冲突!而不管这个函数是否在.h中声明过没有.
另外,发现.h中的文件声明 没有使用extern 和有extern ,声明的效果是一样的,好奇怪。

TOP

http://yzfy.org/bbs/viewthread.php?tid=688&extra=page%3D1

看我以前写的一篇文章。
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

回复 2# 的帖子

为什么 我发现对于 C代码得到的汇编程序,开头是???
然后只是中间一段位置才插入一些如下的汇编代码
00401129   add         esp,0Ch
0040112C   mov         dword ptr [mainret],eax
0040112F   mov         edx,dword ptr [mainret]
00401132   push        edx
00401133   call        exit (00401210)
$L17805:
00401138   mov         eax,dword ptr [ebp-14h]
0040113B   mov         ecx,dword ptr [eax]
0040113D   mov         edx,dword ptr [ecx]
0040113F   mov         dword ptr [ebp-20h],edx
00401142   mov         eax,dword ptr [ebp-14h]
00401145   push        eax
00401146   mov         ecx,dword ptr [ebp-20h]
00401149   push        ecx
0040114A   call        _XcptFilter (004013a0)
0040114F   add         esp,8
$L17807:
00401152   ret
$L17806:
00401153   mov         esp,dword ptr [ebp-18h]
00401156   mov         edx,dword ptr [ebp-20h]
00401159   push        edx
……
是不是这个汇编代码的执行,是从什么固定位置开始的 ?、

TOP

C/C++的程序,都是从一段特定的汇编代码Startup Code 执行的。由Startup Code调用main函数,这就是main函数参数可以不一样的原因。
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

我的汇编代码怎么是AT&T格式的阿????
我用gcc
前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。

TOP

引用:
vfdff 在 2008-5-12 23:32 的发言:

为什么 我发现对于 C代码得到的汇编程序,开头是???
然后只是中间一段位置才插入一些如下的汇编代码
00401129   add         esp,0Ch
0040112C   mov         dword ptr [mainret],eax
0040112F   mov        ...
大哥,这段汇编代码对应的C语言源程序可以发出来吗》

TOP

上面那段汇编,第一段是exit(mainret);也就是说使用main的返回值调用exit函数,这段代码是Startup Code里面的。
第二段应该是某个函数的内容,具体操作是调用了某个需要两个参数的函数XcptFilter。
第三段不完全,就不说了。
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

发新话题