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
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".