[vox-tech] loop never exits!
Brian Lavender
brian at brie.com
Tue Apr 20 18:37:25 PDT 2010
Our new guy (forget his name, doh!) and I figured out the problem with
my loop that would count down, but not terminate. Turns out I was using
an unsigned integer for my counter in my for loop and it is always
greater than zero (Example 1).
Funny thing is that -Wall didn't catch this. Seems that -Wall could
catch this assuming that we want to loop to terminate. Any thoughts?
Say the compiler gave a warning, would that mess up the "for (;;)"
construct shown in Example 2?
brian
// Example 1
// Loop never terminates
#include <stdio.h>
int main() {
unsigned int i, num=50;
for (i= num ; i >= 0; i--) {
printf("%u\n",i);
}
return 0;
}
// Example 2
// Purposely never terminates
#include <stdio.h>
int main() {
for (;;) {
printf("Hello forever\n");
}
return 0;
}
--
Brian Lavender
http://www.brie.com/brian/
"For every complex problem there is an answer that is clear, simple, and wrong."
- H. L. Mencken
More information about the vox-tech
mailing list