Partielle Initialisierung automatischer Strukturen und Arrays in C und C
Das GNU C-Referenzhandbuch besagt, dass, wenn eine Strukturvariable nicht initialisiert wird, die Werte seiner Mitglieder sind unbestimmt. Die Standards definieren jedoch keine Teilinitialisierung von Strukturen oder Arrays.
Terminologie der Teilinitialisierung
„Teilinitialisierung“ bezieht sich auf die Bereitstellung einiger, aber nicht aller Initialisierer für ein Aggregat (Array oder Struktur).
Initialisierungsregeln für automatische Strukturen und Arrays
Die C- und C-Standards legen die folgenden Regeln für die Initialisierung automatischer Strukturen und Arrays fest:
Teilweises Initialisierungsverhalten
Auch wenn Die teilweise Initialisierung ist in den Standards nicht explizit definiert. Alle Mainstream-Compiler befolgen Folgendes Verhalten:
Beispiel
Das folgende C Code initialisiert teilweise eine Struktur:
struct S { int a; char* b; int c; }; S s = {1, "asdf"};
In diesem Beispiel wird s.a auf 1 initialisiert, s.b ist es auf „asdf“ initialisiert und s.c ist auf Null initialisiert, da es nicht explizit initialisiert wird.
Das obige ist der detaillierte Inhalt vonWie werden automatische Strukturen und Arrays in C und C teilweise initialisiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!