As christop pointed out, the code tends to be cleaner when using ordinary C syntax than when using the preprocessor syntax. You're doing premature optimisation such that it is almost certainly not optimisation at all. Instead of assuming, follow good practices and test for when they don't apply.Originally Posted by awsdert
"Modern" does depend on context (my undergrad class on "modern Japanese history" started with the mid-1500s), and in this case we're looking at a particular kind of dead code elimination that likely has been common for a quarter of a century or more. (I cannot cite a source, but it's an educated guess from a book written circa 1995 that explained why for ( ;; ) was considered canonical instead of while (1), but which also explained that the underlying issue, i.e., compilers generating code that evaluated the constant rather than generating the deliberate infinite loop, were old and no longer in use... in 1995.)Originally Posted by awsdert