0 Tage Serie
c / intermediate
Snippet

Typgenerische Auswahl mit _Generic

Eingeführt in C11, bietet '_Generic' eine Möglichkeit, zur Kompilierzeit einen Ausdruck basierend auf dem Typ eines Steuerausdrucks auszuwählen, was grundlegende generische Programmierung ermöglicht.

snippet.c
c
1
2
3
4
5
6
7
#define typename(x) _Generic((x), \
int: "int", \
float: "float", \
char *: "string", \
default: "other")
const char *type = typename(3.14f);
Erklärung
1
_Generic((x),
Beginnt die typbasierte Auswahl basierend auf der Variable 'x'.
2
float: "float",
Wenn 'x' ein float ist, ergibt der Ausdruck das String-Literal "float".