&gt; What sort of optimisations exactly, and just how significant are they?<p>Well, if you could remove one instruction per loop on most computers (especially conditionals that could cause a branch mis-prediction), the effect of that in terms of performance is pretty staggering. Instead of thinking of it as an optimization, think of it as a check that doesn&#x27;t need to be inserted into the code. If you can tell the compiler &quot;I promise I won&#x27;t overflow this variable&quot;, that&#x27;s a lot less error checking it needs to insert on every iteration.<p>&gt; I don&#x27;t believe C should be a language where the compiler does all sorts of high-level optimisation; it should be a straightforward &quot;do what I say&quot; type of language where you get almost exactly what you write<p>Well, you could just compile with -O0 then. I don&#x27;t necessarily agree with C on this, but it&#x27;s pretty clear the community has made the decision to prioritize speed over safety. Nothing wrong with that, but if safety is your priority you should probably look at things other than C. Even if you were to define undefined behavior, it&#x27;s a spectacularly dangerous language.