static_if im Präprozessor von C99

Ist es möglich, static_if in C99 zu implementieren?

#define STATIC_IF(COND, ...) \
     if (COND) MACRO1(__VA_ARGS__); \
     else MACRO2(__VA_ARGS__);

Wie kann ich das richtig umsetzenSTATIC_IF(…) hier drin? Es hängt davon abCOND Die Argumente sollten entweder an übergeben werdenMACRO1 oderMACRO2, aber die Argumente für beide Makros sehen unterschiedlich aus.COND ist statisch prüfbar, sowassizeof (…) > 42.

#if COND dann#define STATIC_IF MACRO1 … Würde für meinen Anwendungsfall nicht funktionieren.Ich kann keine compilerspezifischen Lösungen verwenden.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage