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;
> }

_______________________________________________
vox-tech mailing list
[email protected]
http://lists.lugod.org/mailman/listinfo/vox-tech

Reply via email to