| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1715 人关注过本帖
标题:深信服的一道笔试题,C语言大神来看看
只看楼主 加入收藏
星闪夜空
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:50
专家分:119
注 册:2012-9-15
收藏
得分:0 
回复 19楼 embed_xuel
关键为什么会出现那样的问题?
2013-10-17 11:58
星闪夜空
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:50
专家分:119
注 册:2012-9-15
收藏
得分:0 
回复 16楼 zhaogay
嗯,是的,我用VC++运行也是5
2013-10-17 11:58
星闪夜空
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:50
专家分:119
注 册:2012-9-15
收藏
得分:0 
回复 17楼 C_printf
那我觉得你还是将程序运行一遍再来说吧
2013-10-17 11:59
hh373231690
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:138
注 册:2012-10-13
收藏
得分:0 
回复 20楼 星闪夜空
我说的是&ret不变,不是ret值不变
2013-10-17 12:07
zhaogay
Rank: 7Rank: 7Rank: 7
来 自:宫
等 级:黑侠
帖 子:151
专家分:586
注 册:2013-10-10
收藏
得分:0 
没有vc环境,比较麻烦就不装了,楼主可以把*fun4(2)和*fun4(1),用两个printf输出看看,看看值是多少。fun3也可以这样测;

好好学习,天天想上
2013-10-17 12:24
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:2 
深信服啊,呵呵。不说话

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-10-17 13:13
jia3111
Rank: 2
等 级:论坛游民
帖 子:37
专家分:92
注 册:2012-9-20
收藏
得分:2 
回复 5楼 星闪夜空
fun1,不需要返回值?能通过?
2013-10-17 13:27
C_printf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:122
注 册:2010-1-26
收藏
得分:10 
回复 18楼 zhaogay
一般跟编译器相关的问题我不想讨论,因为这种不是标准的标准没必要深究,一试便知!

下面是 c = *fun3(2) - *fun3(1); 的反汇编。
事实就是最后在拿地址里面的值做减法。当然,我这是vs2012

00E33BD5  push        2  
00E33BD7  call        fun3 (0E311E5h)  
00E33BDC  add         esp,4  
00E33BDF  mov         esi,eax  
00E33BE1  push        1  
00E33BE3  call        fun3 (0E311E5h)  
00E33BE8  add         esp,4  
00E33BEB  mov         ecx,dword ptr [esi]  
00E33BED  sub         ecx,dword ptr [eax]  
00E33BEF  mov         dword ptr [c],ecx
2013-10-17 13:41
zhaogay
Rank: 7Rank: 7Rank: 7
来 自:宫
等 级:黑侠
帖 子:151
专家分:586
注 册:2013-10-10
收藏
得分:0 
回复 28楼 C_printf
好久没碰汇编了,但可以看出来是把值保存了再减的吧,最后sub是对同一地址取值减的?1-1?

好好学习,天天想上
2013-10-17 15:12
C_printf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:122
注 册:2010-1-26
收藏
得分:0 
回复 29楼 zhaogay
依我看,你汇编很厉害,不需要我解释了。
2013-10-17 15:35
快速回复:深信服的一道笔试题,C语言大神来看看
数据加载中...
 
   



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

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