【发布时间】:2012-03-05 11:54:29
【问题描述】:
在 C 和 C++ 中,对函数的参数求值是否有固定的顺序?我的意思是,标准是怎么说的?是left-to-right 还是right-to-left?
我从书中得到了令人困惑的信息。
function call 是否需要使用stack only 来实现? C 和 C++ 标准对此有何规定?
【问题讨论】:
-
标准没有具体说明。顺序甚至可以在运行时随机更改(但没有实现这样做,AFAIK)。
-
小注意——你可以认为逗号是一个序列点,它会强制执行从左到右的排序。但是逗号操作符是一个序列点,不是分隔函数参数的逗号。
-
如果您依赖它,那么您的代码可能难以阅读、推理和维护。
-
SO 上无数重复的问题中缺少哪些信息?
-
不要同时用 C 和 C++ 标记您的问题,如果它不是关于差异、相似之处、应该适用于两者的代码或类似的东西。