[vox-tech] loop never exits!
Bill Broadley
bill at broadley.org
Tue Apr 20 18:54:33 PDT 2010
On 04/20/2010 06:37 PM, Brian Lavender wrote:
> 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).
No, it's not always greater than zero. Your test says i>=0 so if it's
greater than or equal to zero it continues. Seems like you want i>0.
> 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?
Seems strange, but legal to do what you wanted.
> 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;
> }
More information about the vox-tech
mailing list