Georg Bauhaus wrote:
What do you get if you use the C99 construct of declaring the variable in the for statement? Like so:
We have just been discussing a similar topic in a de.* newsgroup. A busy-loop function is used to effect a delay, not too precise, but portably. Like
#define COUNT 1000
void f() { /*volatile*/ /*register*/ int i;
for (i = 0; i < COUNT; ++i) ; }
If volatile is used to instruct the compiler to actually produce a loop even when optimizing, then we get copying from/to the stack, or memory access (ARM). What the compiler users have expected their compiler to do is to produce an obvious loop using registers.
for(volatile int i = 0; i < COUNT; ++i);
Eric
