c / expert
Snippet
Benannte Initialisierer für dünnbesetzte Arrays
Benannte Initialisierer (Designated Initializers) erlauben es, spezifische Array-Indizes oder Struktur-Member per Namen/Index zu initialisieren. Bei Arrays ist dies besonders nützlich, um nicht-sequenzielle Konstanten (wie Fehlercodes) auf Strings abzubilden, wobei nicht initialisierte Elemente auf Null/NULL bleiben.
snippet.c
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>const char* get_error(int code) {static const char* const errors[] = {[0] = "Success",[404] = "Not Found",[500] = "Internal Server Error"};return (code >= 0 && code < 501) ? errors[code] : "Unknown";}
Erklärung
1
[404] = "Not Found"
Setzt explizit den Wert bei Index 404, unabhängig von vorherigen Elementen.