0 Tage Serie
c / intermediate
Snippet

Benannte Initialisierungen für Strukturen

Benannte Initialisierungen ermöglichen es, Strukturmitglieder namentlich statt nach ihrer Position zu initialisieren. Dies macht den Code robuster gegenüber Änderungen in der Strukturdefinition und verbessert die Lesbarkeit, da explizit angegeben wird, welcher Wert zu welchem Feld gehört.

snippet.c
c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
struct Config {
int timeout;
float threshold;
char mode;
};
int main() {
// Initialize specific members out of order
struct Config sys_cfg = {
.mode = 'A',
.timeout = 3600,
.threshold = 0.85f
};
printf("Mode: %c, Timeout: %d\n", sys_cfg.mode, sys_cfg.timeout);
return 0;
}
Erklärung
1
.mode = 'A',
Weist dem Mitglied 'mode' explizit 'A' unter Verwendung des Punkt-Operators zu.
2
struct Config sys_cfg = { ... };
Initialisiert die Struktur-Instanz in einem einzigen, übersichtlichen Block.