| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1449 人关注过本帖
标题:函数声明的理解
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:6 
函数声明的理解
函数声明在使用某个函数的时候,指示当前代码中存在上述的标号(函数名)定义
但是函数声明却并不能知道函数的功能
这个就是说函数只是声明,通知别人已经定义而已吗?
因为我创建了一个静态库,发现对于其对应的函数头文件.h中,我没有把lib中的定义的函数进行声明,却发现当我重新定义一个和这个lib中同名函数的时候,仍旧会发生冲突!而不管这个函数是否在.h中声明过没有.
另外,发现.h中的文件声明 没有使用extern 和有extern ,声明的效果是一样的,好奇怪。
搜索更多相关主题的帖子: 函数声明 定义 extern lib 效果 
2008-05-09 00:37
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
http://

看我以前写的一篇文章。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-09 03:08
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 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
……
是不是这个汇编代码的执行,是从什么固定位置开始的 ?、
2008-05-12 23:32
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
C/C++的程序,都是从一段特定的汇编代码Startup Code 执行的。由Startup Code调用main函数,这就是main函数参数可以不一样的原因。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-13 06:07
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
我的汇编代码怎么是AT&T格式的阿????
我用gcc

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-13 10:26
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
上面那段汇编,第一段是exit(mainret);也就是说使用main的返回值调用exit函数,这段代码是Startup Code里面的。
第二段应该是某个函数的内容,具体操作是调用了某个需要两个参数的函数XcptFilter。
第三段不完全,就不说了。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-27 19:21
快速回复:函数声明的理解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021465 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved