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