c语言关于函数多参数时候左右问题

[复制链接]
查看11 | 回复3 | 2013-2-20 14:15:46 | 显示全部楼层 |阅读模式
cdecl :p=f(++i,i); p=f(3,2)
p=f(i,++i);p=f(3,3);stdcall :p=f(++i,i); p=f(3,2)
p=f(i,++i);p=f(3,3);函数调用里的参数入栈顺序和参数计算顺序一致;cdecl,stdcall参数自右向左入栈,所以如此函数调用应该是所谓的顺序点,不过并不是书写顺序,而是使用顺序!!cdecl,stdcall里顺序是右向左入栈C:函数,一般是cdecl的调用约定C++函数,一般是stdcall调用约定...
回复

使用道具 举报

千问 | 2013-2-20 14:15:46 | 显示全部楼层
j=++i 结果,i先进行自加,自加后,i=3再赋值给j,此处,j=3。而k=i 出现在i自加之后,k=i,得到结果,k=3。j=i++ 结果,i=2先赋值给j,再进行自加,此处,j=2,自加结束后,i=3。而k=i 出现在i自加之后,k=i,得到结果,k=3。...
回复

使用道具 举报

千问 | 2013-2-20 14:15:46 | 显示全部楼层
j=++i等同于i++; j=i;j=i++等同于j=i;i++;...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行