0 Tage Serie
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
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.