>백엔드 개발 >C++ >C 구조체 멤버를 0으로 초기화하려면 어떻게 해야 합니까?

C 구조체 멤버를 0으로 초기화하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-08 10:08:12277검색

How Can I Initialize C   Struct Members to Zero?

C 구조체 멤버의 기본 초기화

C 구조체에서 멤버는 기본적으로 자동으로 0으로 초기화되지 않습니다. 구조체 멤버를 0으로 초기화하려면 다음과 같은 몇 가지 옵션이 있습니다.

값 초기화

중괄호로 묶인 빈 중괄호 { }를 사용하면 모든 멤버에 기본값이 할당됩니다.

Snapshot s = {};

상위 구조체 재귀

상위 구조체에 하위 구조체가 포함된 경우 상위 구조체의 값 초기화는 해당 하위 구조체 멤버도 0:

struct Parent { Snapshot s; };
Parent p = {}; // p.s.{x,y} will be zero

생성자로 초기화합니다. 초기화

구조체에 생성자가 있는 경우 해당 매개변수에서 멤버를 초기화할 수 있습니다. 목록:

struct Snapshot {
    int x;
    double y;
    Snapshot():x(0),y(0) { }
};
Snapshot s; // s.{x,y} will be zero

()를 사용한 값 초기화

()로 표시된 값 초기화는 유형에 관계없이 멤버를 초기화합니다.

struct Snapshot {
    int x;
    double y;
};
Snapshot s = {x(), y()}; // s.{x,y} will be zero

템플릿 구조체의 경우 값 초기화가 중요하므로 다양한 유형에 대한 적절한 초기화를 보장해야 합니다.

위 내용은 C 구조체 멤버를 0으로 초기화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.