링커, 로더, 실행 파일
C 언어에서 파일 바깥에 「int limit = 100;」이라고 쓴 전역 변수는 일반적으로 어느 섹션에 놓이는가?
- A.data(초깃값이 있는 데이터)
- B.bss(초깃값이 없는 데이터)
- C.text(기계어)
정답과 해설 보기
정답: A. .data(초깃값이 있는 데이터)
0이 아닌 초깃값을 가진 전역 변수나 정적 변수는 .data 섹션에 놓이며, 그 초깃값이 파일 안에 저장됩니다. 프로그램을 읽어 들일 때 이 내용이 그대로 메모리에 복사되므로 main이 시작되는 시점에 limit은 100입니다. .data는 실행 중에 바뀔 수 있으므로 읽기와 쓰기가 허용된 영역이 됩니다.
- A. 올바릅니다. 초깃값 100을 파일에 가지고 있습니다.
- B. .bss는 초깃값이 0이거나 지정이 없는 변수입니다.
- C. .text는 코드 영역입니다.