Zu den Standards:

Die { und } werden üblicherweise links ausgerichtet:
Code:
while (foo)
{
    if (bar)
    {
        bazz();
    }
}
Macht dir und anderen das Quelle-Lesen einfacher.


Um die C-Quelle Standard-konform zu halten, gibt es Optionen wie -ansi, -pedantic, -std=c99, -Wmissing-prototypes, -W, -Wall, ...

Mit deinen Makros musst du darauf achten, daß die Werte zur Compilezeit bekannt sind. Ausserdem gibt es Grenzen, ab der eine Funktion als "wert sie zu inlinen" betrachtet wird. Wenn die Funktion (setpout) nicht geinlint wird, fällt sie u.U recht groß aus, weil die o.g. Optimierung nicht gemacht werden kann. Sind die Werte zur Compilezeit nicht bekannt, bläht das den Code auf.
Inlining erzwingen kannst mit dem o.g. Attribut. Anwarnen, wenn Inlining nicht klappt mit -Winline oder so. Musst eben bei dem gcc-Schaltern schauen.