On Monday, February 14th, 2022 at 11:38, Andy Shevchenko andriy.shevchenko@linux.intel.com wrote:
IMO *always* prefer a for loop over while or do-while.
The for (i = 0; i < N; i++) is such a strong paradigm in C. You instantly know how many times you're going to loop, at a glance. Not so with with the alternatives, which should be used sparingly.
while () {} _is_ a paradigm, for-loop is syntax sugar on top of it.
Naw, that's not true.
In the section 3.5 "Loops - While and For" in "The C Programming Language" 2nd by K&R, the authors said:
The for statement ... is equivalent to ... while..."
They said that for is equivalent to while, and not otherwise.
Also, syntax sugar by definition declares something that can be written as a single line of code, which usually is done using more (not always).
arr[i] is syntaxic sugar for *(arr + i), yet we keep writing the former, because it's way more readable. The same goes for the for vs. while loops. It may be obvious for you because you're a C guru, but to me it just obfuscates the code. Too many C projects end up becoming completely unreadable because of patterns like these.
Idiomatic C code isn't written by doing pointless micro-optimizations.