정적 변수는 C 및 C의 고유한 유형의 변수로, 이름을 피하기 위해 실행 파일의 특정 세그먼트에 저장됩니다. 충돌. 제공된 코드 예제에서는 서로 다른 번역 단위에서 동일한 이름 "foo"와 "bar"가 있음에도 불구하고 값이 증가하면 독립적으로 작동합니다. 이러한 독립성은 다음과 같은 질문을 제기합니다. 이러한 정적 변수는 실행 파일에 어디에 저장되어 있습니까?
저장 위치를 이해하려면 정적 변수가 0으로 초기화되었는지 여부를 고려하는 것이 중요합니다. 그렇다면 일반적으로 ".BSS"(기호로 시작되는 블록) 세그먼트에 배치됩니다. 이 세그먼트는 기본적으로 0으로 설정되는 초기화되지 않은 데이터를 저장합니다. 예를 들어, "foo = 1;" ".DATA"에 저장됩니다.
한편, 0으로 초기화되지 않은 정적 변수는 ".DATA" 세그먼트에 배치됩니다. 이 세그먼트에는 "foo = 10;"과 같은 초기화된 데이터가 포함되어 있습니다. 이러한 세그먼트로 분리하면 이름 충돌이 발생하지 않으며 효율적인 메모리 할당이 가능합니다.
위 내용은 C 및 C 실행 파일에서 정적 변수는 어디에 저장됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!