Die Werte nicht initialisierter Mitglieder einer C-Struktur sind nicht garantiert 0. Um diese explizit zu initialisieren Mitglieder, verwenden Sie eine Initialisierungsliste:
struct Snapshot { double x; int y; }; Snapshot s = {0, 0}; // Explicitly initialize members to 0
Alternativ können Sie die Struktur mit {} initialisieren. Syntax:
Snapshot s = {}; // Value initializes all members to 0
Beachten Sie, dass die Verwendung von {} zur Wertinitialisierung rekursiv funktioniert, auch für verschachtelte Strukturen:
struct Parent { Snapshot s; }; Parent p = {}; // Value initializes both p and p.s to 0
Wenn die Struktur Konstruktoren hat, müssen Sie die Mitglieder darin explizit initialisieren Konstruktoren:
struct Snapshot { int x; double y; Snapshot(): x(0), y(0) { } // Initialize members in the constructor };
Alternativ können Sie die Standardwertinitialisierungssyntax x(), y() to verwenden Ignorieren Sie den Typ und weisen Sie einen geeigneten Anfangswert zu (0 für int, 0.0 für double usw.):
Snapshot(): x(), y() { } // Value initializes both x and y to 0
Dies kann besonders für Vorlagen nützlich sein.
Das obige ist der detaillierte Inhalt vonWerden C-Strukturmitglieder standardmäßig auf Null initialisiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!