Vsak na to kazde rozumnejsi cecko uz pres desetileti hazi warning, a mnohem davneji tusim Ludek Skocovsky (ale mozna se pletu) psal jako best practice "nepiste if (a == NULL), ale if (NULL == a) pro pripad preklepu"
Coz si myslim je dostatecne.
spousta konstrukci stylu while (0 < (i = read(....))) by byla daleko mene prehlednejsi.
ad automaticky break v case - opet, spoustu chyb by to vyresilo, spoustu prace jinde by to pridalo. Konstrukce
switch () {
case 1:
case 2:
some_extra_check();
case 3:
case 4:
do_common_work_1_4();
break;
je v praxi pouzivana dost casto, a obvykle v mistech kde to dava smysl i pro prehlednost.