c / expert
Snippet
Compile-Zeit-Beschränkungen mit _Static_assert
Eingeführt in C11, erlaubt _Static_assert die Prüfung von Bedingungen zur Compile-Zeit anstatt zur Laufzeit. Wenn der Ausdruck falsch ist, generiert der Compiler einen Fehler mit dem angegebenen String, wodurch sichergestellt wird, dass Architektur- oder Konfigurationsanforderungen erfüllt sind, bevor das Binary überhaupt erstellt wird.
snippet.c
1
2
3
4
5
6
7
8
9
#include <limits.h>#include <stdint.h>_Static_assert(sizeof(void*) == 8, "64-bit architecture required");_Static_assert(CHAR_BIT == 8, "Non-standard byte size not supported");int main() {return 0;}
Erklärung
1
_Static_assert(expr, msg)
Wertet 'expr' zur Compile-Zeit aus; bricht die Kompilierung mit 'msg' ab, wenn 'expr' Null ist.