>백엔드 개발 >C++ >C 및 C 실행 파일에서 정적 변수는 어디에 저장됩니까?

C 및 C 실행 파일에서 정적 변수는 어디에 저장됩니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-03 11:28:40194검색

Where Are Static Variables Stored in C and C   Executable Files?

C 및 C의 정적 변수 저장

정적 변수는 C 및 C의 고유한 유형의 변수로, 이름을 피하기 위해 실행 파일의 특정 세그먼트에 저장됩니다. 충돌. 제공된 코드 예제에서는 서로 다른 번역 단위에서 동일한 이름 "foo"와 "bar"가 있음에도 불구하고 값이 증가하면 독립적으로 작동합니다. 이러한 독립성은 다음과 같은 질문을 제기합니다. 이러한 정적 변수는 실행 파일에 어디에 저장되어 있습니까?

저장 위치를 ​​이해하려면 정적 변수가 0으로 초기화되었는지 여부를 고려하는 것이 중요합니다. 그렇다면 일반적으로 ".BSS"(기호로 시작되는 블록) 세그먼트에 배치됩니다. 이 세그먼트는 기본적으로 0으로 설정되는 초기화되지 않은 데이터를 저장합니다. 예를 들어, "foo = 1;" ".DATA"에 저장됩니다.

한편, 0으로 초기화되지 않은 정적 변수는 ".DATA" 세그먼트에 배치됩니다. 이 세그먼트에는 "foo = 10;"과 같은 초기화된 데이터가 포함되어 있습니다. 이러한 세그먼트로 분리하면 이름 충돌이 발생하지 않으며 효율적인 메모리 할당이 가능합니다.

위 내용은 C 및 C 실행 파일에서 정적 변수는 어디에 저장됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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