> 백엔드 개발 > C++ > C와 C에서 중괄호를 사용하여 배열을 초기화하는 방법은 무엇입니까?

C와 C에서 중괄호를 사용하여 배열을 초기화하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-13 02:41:10
원래의
294명이 탐색했습니다.

How Are Arrays Initialized with Braces in C and C  ?

중괄호를 사용한 배열 초기화: 컴파일러의 동작 공개

프로그래밍에서 array[100] =와 같이 중괄호를 사용하여 배열을 할당합니다. {0}는 값이 내부적으로 어떻게 초기화되는지에 대한 질문을 제기합니다. 이 표기법 뒤에 숨어 있는 마법을 파헤쳐 보겠습니다.

마법인가 아니면 컴파일러 논리인가?

일반적인 인식과 달리 마술은 관련되지 않습니다. 이 코드의 동작은 프로그래밍 언어 사양에 따라 결정됩니다.

C 사양(섹션 6.7.8.21): 지정되지 않은 배열 요소의 경우 포인터는 NULL로 초기화되고 산술 유형(char 포함) )는 0으로 설정됩니다.

C 사양(섹션 8.5.1.7): 지정되지 않은 배열 요소는 집계 초기화됩니다.

C의 빈 초기화 목록 : C는 array[100] = {};와 같은 빈 초기화 목록을 지원합니다. 배열의 모든 요소를 ​​집계 초기화합니다.

컴파일러 생성 코드: 일반적으로 컴파일러는 배열의 각 요소를 지정된 값으로 설정하는 코드를 생성합니다. 그러나 컴파일러 및 최적화 설정에 따라 코드가 달라질 수 있습니다.

컴파일러의 동작에 대한 자세한 내용은 관련 질문인 "배열 0의 이상한 어셈블리"에서 빈 이니셜라이저 목록에 대해 생성된 어셈블리 코드를 참조하세요. -초기화."

위 내용은 C와 C에서 중괄호를 사용하여 배열을 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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