C 구조체의 초기화되지 않은 멤버 값은 0이 될 수 없습니다. 이를 명시적으로 초기화하려면 멤버의 경우 초기화 목록을 사용하세요.
struct Snapshot { double x; int y; }; Snapshot s = {0, 0}; // Explicitly initialize members to 0
또는 구조체를 초기화할 수도 있습니다. {} 구문 사용:
Snapshot s = {}; // Value initializes all members to 0
값 초기화에 {}를 사용하면 중첩된 구조체에 대해서도 재귀적으로 작동합니다.
struct Parent { Snapshot s; }; Parent p = {}; // Value initializes both p and p.s to 0
구조체에 생성자가 있는 경우 명시적으로 초기화해야 합니다. 해당 생성자의 멤버:
struct Snapshot { int x; double y; Snapshot(): x(0), y(0) { } // Initialize members in the constructor };
또는 기본값 초기화 구문을 사용할 수 있습니다. x(), y()를 사용하여 유형을 무시하고 적절한 초기 값(int의 경우 0, double의 경우 0.0 등)을 할당합니다.
Snapshot(): x(), y() { } // Value initializes both x and y to 0
이는 특히 템플릿에 유용할 수 있습니다.
위 내용은 C 구조체 멤버는 기본적으로 0으로 초기화됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!