小编Ric*_*h K的帖子

关于for(),为什么使用i ++而不是++ i?

也许它在优化后对编译器无关紧要,但在C/C++中,我看到大多数人以下列形式制作for循环:

for (i = 0; i < arr.length; i++)
Run Code Online (Sandbox Code Playgroud)

使用post fix ++完成递增的地方.我得到了两种形式之间的区别.i ++返回i的当前值,但是在安静时将i加1.++我首先向i添加1,并返回新值(比我多1).

我认为i ++需要更多的工作,因为除了下一个值之外还需要存储先前的值:Push*(&i)to stack(或load to register); 增量*(&i).Versus ++ i:增量*(&i); 然后根据需要使用*(&i).

(我认为"递增*(&i)"操作可能涉及寄存器加载,具体取决于CPU设计.在这种情况下,i ++需要另一个寄存器或堆栈推送.)

无论如何,在什么时候,以及为什么,i ++变得更时尚?


我倾向于相信azheglov:这是一个教育学的东西,因为我们大多数人在Window或*nix系统上进行C/C++,编译器质量很高,没有人受伤.

如果您使用的是低质量编译器或解释环境,则可能需要对此敏感.当然,如果你正在进行高级C++或设备驱动程序或嵌入式工作,希望你已经足够经验丰富,这根本不是什么大问题.(狗是否具有佛性?谁真的需要知道?)

php c c++ java

10
推荐指数
3
解决办法
1095
查看次数

标签 统计

c ×1

c++ ×1

java ×1

php ×1