Is "for(;;)" faster than "while (true)"? If not, why do people use it?
c, c++, infinite-loop, optimization, readability
Solution
- It's not faster.
- If you really care, compile with assembler output for your platform and look to see.
- It doesn't matter. This never matters. Write your infinite loops however you like.
Problem
``` for (;;) { //Something to be done repeatedly } ``` I have seen this sort of thing used a lot, but I think it is rather strange... Wouldn't it be much clearer to say `while(true)`, or something along those lines? I'm guessing that (as is the reason for many-a-programmer to resort to cryptic code) this is a tiny margin faster? Why, and is it really worth it? If so, why not just define it this way: ``` #define while(true) for(;;) ``` See also: Which is faster: while(1) or while(2)?