> 백엔드 개발 > C++ > 부분적으로 초기화된 자동 구조와 배열은 C와 C에서 어떻게 처리됩니까?

부분적으로 초기화된 자동 구조와 배열은 C와 C에서 어떻게 처리됩니까?

Barbara Streisand
풀어 주다: 2024-12-08 02:54:15
원래의
353명이 탐색했습니다.

How Are Partially Initialized Automatic Structures and Arrays Handled in C and C  ?

C/C의 자동 구조 및 배열의 ​​부분 초기화

요소보다 적은 수의 이니셜라이저를 사용하여 자동 구조 또는 배열을 초기화하는 경우 다음에 의해 지정된 동작을 이해하는 것이 중요합니다. C와 C 표준.

완전 및 부분 초기화

C 표준은 자동 변수에 대해 두 가지 유형의 초기화, 즉 완전 초기화와 초기화 없음을 정의합니다. 부분 초기화는 요소나 멤버 중 일부만 초기화되는 상황을 가리키는 비표준 용어입니다.

부분 초기화 규칙

C99 표준

C99에서는 자동 배열 및 구조의 경우 요소보다 초기화 프로그램 수가 적으면 나머지 요소가 초기화됩니다. 정적 저장 기간을 갖는 객체와 암시적으로 동일합니다. 이는 정수 유형의 경우 0으로 초기화된다는 의미입니다.

C 03 Standard

C에서 자동 배열 및 구조의 경우 초기화되지 않은 멤버는 값으로 초기화됩니다. 클래스 유형의 경우 이는 기본 생성자를 호출하는 것을 의미합니다. int와 같은 내장 유형의 경우 이는 0 초기화를 의미합니다.

C에서는 단일 값으로 정수의 자동 배열을 초기화합니다. 예:

int arr[10] = {123,};
로그인 후 복사

C에서 지정한 대로 첫 번째 요소를 123으로 초기화하고 나머지 모든 요소를 ​​0으로 초기화합니다.

다른 컴파일러와의 호환성

대부분의 주류 컴파일러는 C 및 C 표준에 지정된 부분 초기화 규칙을 따릅니다. 그러나 다양한 컴파일러 간의 호환성을 보장하려면 모든 요소나 멤버를 명시적으로 초기화하는 것이 좋습니다.

위 내용은 부분적으로 초기화된 자동 구조와 배열은 C와 C에서 어떻게 처리됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿