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