C
세그먼트
GunwooYun
2023. 4. 13. 21:14
아래 코드의 실행파일 a.out의 세그먼트를 확인해보자.
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("hello, world\n");
return 0;
}
위 코드의 세그먼트는 다음과 같다.
다음은 전역변수에 1000개의 값을 갖는 배열을 선언한다.
선언한 배열을 초기화 하면 배열은 bss에서 data영역으로 넘어간다.
main 함수에 같은 길이의 배열을 선언하고 size를 출력한다.
이번엔 초기화도 진행해보자.
초기화되지 않은 전역변수는 bss 세그먼트로, 초기화된 전역변수는 데이터 세그먼트로, 그리고 함수에 선언된 지역변수는 런타임에서만 세그먼트에 저장된다는 것을 알 수 있다.