| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3219 人关注过本帖
标题:关于printf函数.大家请看看.............
只看楼主 加入收藏
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
按照我的理解。应该是第一次调用printf,io申请缓冲区冲掉了长度100的字符串"I Love you"。但是还是有点不明白。如果是只分配一次的缓冲区,理论上应该不会分配到栈上面去。而是在堆上面分配。那样的话,为什么还会冲掉缓冲区呢?按照燕子的程序。如果不分配缓冲区的话,printf占用90字节的堆栈,如果分配的话,占用三百多字节。看样子是在栈上面分配的,如果那样,为什么还会有”第一次调用才分配”这样的逻辑呢?
想不明白……

有没有介绍标准IO内部实现的资料呢?发现自己对于缓冲区,及内部实现,是一点都不懂……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-17 11:10
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
[bo]以下是引用 [un]Q1007665007[/un] 在 2008-5-17 05:28 的发言:[/bo]

我心态要是平和我就不会这么晚还不休息
刚刚又更新了高亮软件,容错力越来越强,现在连头文件名折行也能完美解决了
不过我现在已经不想发出来了,学到的东西不分享也就罢了
总觉得有的时候,人的自私是被某些小人逼的 ...


嘴巴长在别人身上,别人如何评论不必太在意。
人是为自己而活,不是为别人。
别人的评论,觉得有道理就接受,没道理就忽略。
木秀于林,风必摧之。一个人太引人注目必然同时引来赞誉和批评打击,真正自信的人应该夸不骄,批不倒。
在超越众人的时候,尤其要低调处事,以谦逊的态度对待人和事。

=====================================================================================================
回楼上:
标准IO缓冲是在堆中声请的,这个缓冲区和堆栈没有关系。
我们没人说这些空间是缓冲区占用了,我在26楼只是说“第一次调用printf对后面再次调用有影响”,意思是先后两次调用同一io函数时该函数的行为不一致,所以才会有破坏堆栈数据程度不同的差别,也就造成了一种情况下保留I love you!另一种把这段字符全部破坏的区别。
这种区别的原因是IO缓冲区,但不是说是缓冲区直接破坏,是间接导致的。
收到的鲜花
  • liyanhong2008-05-17 11:36 送鲜花  2朵   附言:听着真难过
  • liyanhong2008-05-17 11:49 送鲜花  2朵  
  • liyanhong2008-05-17 11:49 送鲜花  2朵  
  • StarWing832008-05-17 15:28 送鲜花  5朵   附言:谢谢你解答了我的疑惑。是我疏忽了。 ...
  • StarWing832008-05-17 15:28 送鲜花  5朵   附言:对燕子的评论,很欣赏,你是一个稳沉的人。 ...
  • StarWing832008-05-17 15:30 送鲜花  5朵   附言:要向你学习。NND,非要三次才能写完…… ...
  • mqh213642008-05-17 16:23 送鲜花  4朵   附言:我就4个,都给你!

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-05-17 11:32
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
C版已经好久没见过这样真正的讨论贴了

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2008-05-17 12:41
快速回复:关于printf函数.大家请看看.............
数据加载中...
 
   



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

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