杨老师:__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) |