[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