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)?

Original source

Related problems