c / expert
Snippet
C99 Compound Literals für temporäre Objekte
Compound Literals ermöglichen die Erstellung unbenannter Objekte im laufenden Betrieb. Sie sind L-Werte, was bedeutet, dass man sogar ihre Adresse abrufen kann. Dies ist äußerst nützlich, um komplexe Argumente an Funktionen zu übergeben, ohne den Scope mit temporären Variablen zu belasten.
snippet.c
1
2
3
4
5
6
7
8
typedef struct { int r, g, b; } Color;void apply_color(Color c);int main() {// Passing an anonymous struct object without a variableapply_color((Color){255, 128, 0});return 0;}
Erklärung
1
(Color){255, 128, 0}
Erzeugt eine temporäre Color-Struktur-Instanz mit den angegebenen Werten.