函数声明的理解
函数声明在使用某个函数的时候,指示当前代码中存在上述的标号(函数名)定义但是函数声明却并不能知道函数的功能
这个就是说函数只是声明,通知别人已经定义而已吗?
因为我创建了一个静态库,发现对于其对应的函数头文件.h中,我没有把lib中的定义的函数进行声明,却发现当我重新定义一个和这个lib中同名函数的时候,仍旧会发生冲突!而不管这个函数是否在.h中声明过没有.
另外,发现.h中的文件声明 没有使用extern 和有extern ,声明的效果是一样的,好奇怪。
----------------解决方案--------------------------------------------------------
http://yzfy.org/bbs/viewthread.php?tid=688&extra=page%3D1
看我以前写的一篇文章。
----------------解决方案--------------------------------------------------------
回复 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
……
是不是这个汇编代码的执行,是从什么固定位置开始的 ?、
----------------解决方案--------------------------------------------------------
C/C++的程序,都是从一段特定的汇编代码Startup Code 执行的。由Startup Code调用main函数,这就是main函数参数可以不一样的原因。
----------------解决方案--------------------------------------------------------
我的汇编代码怎么是AT&T格式的阿????
我用gcc
----------------解决方案--------------------------------------------------------
上面那段汇编,第一段是exit(mainret);也就是说使用main的返回值调用exit函数,这段代码是Startup Code里面的。
第二段应该是某个函数的内容,具体操作是调用了某个需要两个参数的函数XcptFilter。
第三段不完全,就不说了。
----------------解决方案--------------------------------------------------------