c中参数入栈顺序

criticalsection 2012-10-26 02:09:51
C语言中 f(f1(), f2())

有什么方法保证函数f1先于函数f2被调用?
...全文
204 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
criticalsection 2012-11-16
  • 打赏
  • 举报
回复
原来如此: 入栈顺序 跟 求值顺序是2个概念 求值顺序依赖于编译器的实现
mymtom 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
x = f1();
f(x,f2());

只能这样.
详情看顶置帖子
[/Quote]
++

问题是这样有意义吗,难道f1后执行,会导致结果不同?
如果是这样的话,要考虑重新设计, 而不是纠结在这种毫无意义的问题上。
lin5161678 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

这跟顺序点没啥关系吧?只是参数入栈顺序吧?
[/Quote]
是求值顺序不是入栈顺序 然后求值顺序在这里无法确定
想确定执行顺序应该只有#1楼的解决办法了
dpdp_2012 2012-10-26
  • 打赏
  • 举报
回复
据说可以用PASCAL
不知道为什么我用PASCAL 在vs2008和gcc下都编译通不过
一鸣惊人 2012-10-26
  • 打赏
  • 举报
回复
老谭的书经典吗
AnYidan 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
引用 1 楼 的回复:
x = f1();
f(x,f2());

只能这样.
详情看顶置帖子

++

问题是这样有意义吗,难道f1后执行,会导致结果不同?
如果是这样的话,要考虑重新设计, 而不是纠结在这种毫无意义的问题上。
[/Quote]

++
criticalsection 2012-10-26
  • 打赏
  • 举报
回复
我还是去找本老谭的c语言来看吧 多么经典啊 多么具有中国特色啊
iamnobody 2012-10-26
  • 打赏
  • 举报
回复
首先提到入栈顺序的C语言教材都可以当作垃圾.

其次,函数的调用是一个运算, 顺序点决定运算的顺序,当然也决定函数调用的顺序.

入栈顺序跟计算顺序没有任何关系.

自己认真理解顶置帖子吧.

先找本 C primer 来看吧.
criticalsection 2012-10-26
  • 打赏
  • 举报
回复
这跟顺序点没啥关系吧?只是参数入栈顺序吧?
criticalsection 2012-10-26
  • 打赏
  • 举报
回复
置顶帖子?给个链接撒
iamnobody 2012-10-26
  • 打赏
  • 举报
回复

x = f1();
f(x,f2());

只能这样.
详情看顶置帖子

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧