És még van egy olyan szintaktikai fogás is, hogy
#define Kavarás(x) \
do { something(x); action(x); } while(0)
Ez ugyebár egy hátultesztelő ciklus. De mi a fene az előnye? Az, hogy tehetünk mögé [illetve kötelező is tenni] vesszőspontot pl. ilyen helyzetben:
if (i==j) Kavarás(i);
else printf ("Nem kellett a kavarás\n");
Ugyebár ha a 'Kavarás' simán egy blokk lett volna, akkor ez lenne belőle:
if (i==j) { something(i); action(i); };
else printf ("Nem kellett a kavarás\n");
ami a fordítónak azt sugallná, hogy az 'else' előtt két utasítás van: egy blokk, meg egy null.