Misleading indentation aneb nová doba

Tak vážení, pokud napíšete v Cčku něco jako

…
if (1 == prom1) prom2++; prom3++; prom4++;
…

hodí to po vás warning misleading indentation a to i přesto, že z hlediska C je to zcela validní sekvence. Problém je (podle autorů gcc) v tom, že podmínka se vztahuje jen na první příkaz, čili prom2 se inkrementuje pouze pokud je prom1 rovna jedné, avšak prom3 a prom4 se inkrementuje vždy, přičemž „vy si zaručeně myslíte“ že ta podmínka platí pro to celé, tj., prom3 a prom4 se bude inkrementovat jen když bude prom1 rovna jedné. Nechápu jaký vůl tohle vymyslel. Pokud se chcete zbavit toho warningu, musíte to napsat takto:

…
if (1 == prom1) prom2++;
prom3++;prom4++;
…

Dodala bych, že EOLN má v C stejný význam jako mezera. Aneb odpověď na frustraci moderních programátorů neschopných číst normální kód. Ale já vím KDE se tohle vzalo, je fakt sqělé udělat si z EOLN, whitespace a TAB, čili v podstatě neviditelných znaků, prvky jazyka. Kdo tohle vymyslel, musel být genius. Asi nemusím dodávat o kterém školometském jazyce to mluvím…

Komentáře