Home > database >  Confusing for... while loop syntax in C
Confusing for... while loop syntax in C

Time:02-02

I accidentally noticed that the following snipped of code compiles under GCC:

void myFunction(void) {
    int i, y = 0;
    for (i = 0; i < 10; i  )
        y  ;
    while (y);
}

I've never encountered such a piece of code before and wasn't able to find any information about such a construct after doing some searching around. It leads me to wonder what the purpose of such a construct is and what it is meant to do?

CodePudding user response:

There is no such thing as a for ... while loop.

What you see are two independent loops.

First, there is a for loop. The only instruction in the body of that loop is y ;.

Then you see anoter loop: while(y) ;. That is not related at all to the for loop. The body only consists of an empty instruction ;. As y never changes in the body, that will be an infinite loop.

  •  Tags:  
  • c
  • Related