我正在寻找类似的东西:
int nVal = 130;
while(nVal % 6 != 0)
nVal--;
在没有身体的while循环中:
int nVal = 130;
while(nVal-- % 6 != 0)
当然,--
运算符经常被调用一次。
这里有什么建议,还是我应该选择#1?
答案 0 :(得分:5)
使用第一种替代方案,因为它更清晰,更正确。将尽可能多的运算符显示在一行中绝不是一个好主意。特别是++
和--
运算符,因为它们包含副作用,因此与其他运算符一起使用是非常危险的。
答案 1 :(得分:2)
你可以这样做:while((nVal-- -1) % 6 != 0)
但是,正如伦丁所说,第一个例子更清晰
答案 2 :(得分:0)
优化后,它应该是asm中的相同代码。 可能最好使用--nVal而不是nVal--但是使用-o3并不重要我认为。