Chinaunix首页 | 论坛 | 博客
  • 博客访问: 455057
  • 博文数量: 724
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(724)

文章存档

2011年(1)

2008年(723)

我的朋友

分类:

2008-10-13 17:20:49

杨老师:__cdecl 的参数传递顺序是从左向右,而非从右向左。这样才能实现可变参数。作者笔误了吧:)
(发表于2005-4-12 23:29:00)

sheds:就是从右向左啊,你没喝多吧
(发表于2005-4-14 4:00:00)

shell909090:在C中以C方式传递的时候是右向左,PASCAL方式传递的时候是左向右。C方式方向的好处就是可以动态变化参数个数,而PASCAL方式传递方向和清理没有太大关系。貌似基于这个理由,windows下面所有的调用全部都是右向左的。
另外,通过栈堆分析可以知道,左向右的传递方式,最前面的参数被压在栈底。除非知道参数个数,否则是无法通过栈指针的相对位移求得最左边的参数的。这样就变成了左边参数的个数不确定,正好和动态参数个数的方向相反。
(发表于2005-6-13 16:34:00)

daee:杨老师 错了吧
书上都说的__cdecl是从右向左
(发表于2007-5-8 19:56:00)

..........................................................................
--------------------next---------------------

阅读(202) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~