Loading...
 
Skip to main content

System Workbench for STM32


Brilliant For-loop Bug

France

Hi Ben,

Even if I'm just "guessing", I think even the first loop is ignored by the compiler, and it's not a bug: your loops have no result at all, and can safely, according to the C standard, be ignored (or replaced by a simple "i = 10000;" assignment, if ever you used i later on (which is not the case in your code).

To obtain a delay in your code by a for loop, this loop must have some visible effect; the simplest way to obtain this effect, and avoids the compiler optimizing your code out (which is definitely not a bug in this case) you should declare i as volatile (volatile int i;) then the compiler will no more be allowed to simply suppress i and all its references...

Bernard