I našel tento kus kódu na Wikipedii.
#include <stdio.h>
int main(void)
{
int c;
while (c = getchar(), c != EOF && c != 'x')
{
switch (c)
{
case '\n':
case '\r':
printf (Newline\n);
break;
default:
printf (%c,c);
}
}
return 0;
}
Jsem zvědavý výraz použitý jako podmínku while:
while (c = getchar(), c != EOF && c != 'x')
Je zcela zřejmé, co to dělá, ale nikdy jsem tuto konstrukci neviděl. Je to specifická při pobytu smyčku? Pokud tomu tak není, jak se analyzátor / kompilátor určit, která strana oddělených čárkou výraz vrátí logickou hodnotu , zatímco smyčky?