【发布时间】:2012-04-24 22:05:06
【问题描述】:
do {instructions...}
while (x--)
应该先做指令,然后检查x是否不是0并根据结果继续/或离开循环只有在所有这些操作减量后 x。
但我的编译器先递减。
谁错了?我或我的编译器;-)?你能解释一下为什么吗?
【问题讨论】:
-
我认为它会进行检查然后递减,然后在循环中运行指令。这样做是有意义的,因为 x-- 在循环中的指令之前,但 -- 的优先级很低。
-
你怎么知道? “检查 x 的值。离开循环。递减 x”与“检查 x 的值。递减 x。离开循环。”有何明显不同?你在看生成的汇编代码吗?
标签: c loops do-while post-increment