티스토리 뷰

Data 영역

  ◈ .data

  ◈ .bss

  ◈ .rodata

 

 

데이터 영역 어셈블리


메모리 구조

 

메모리 구조에서 데이터 영역에 해당하는 부분은 global variable (전역변수) , static variable (static 변수) 이다.

 

 


 

아래 코드를 전역 변수로 선언했다고 했을 때, 

데이터 영역은 3가지 영역으로 나뉜다.

.bss / .data / .rodata

 

// .bss
int a;

// .data
int b = 0;

// .rodata
const int c = 0;

void main()
{
	// stack 영역
	const int d = 0;
}

 

 

 

1) .bss

초기값 없는 경우

 

2) .data

초기값 있는 경우

 

3) .rodata

읽기 전용 데이터

 

단, const 의 경우 읽기 전용 데이터라고 볼 수 있지만, C++ 표준에서 꼭 const 를 .rodata 로 하라는 말이 없다.

따라서 컴파일러  (VS) 마음이다. 비주얼에서 컴파일 하기 나름이다.

함수 안에서 선언하면 stack 영역으로 들어간다.

 

 

 

3가지를 모두 데이터 영역에 포함시킨다.

 

 

'C++ > Function & Grammer' 카테고리의 다른 글

C++ : ref (참조)  (2) 2022.02.05
C++ : 데이터 타입 변환  (0) 2022.02.05
C++ : Cast (캐스트) 연산자  (0) 2021.11.22
C/C++ : #ifdef 와 #endif  (0) 2021.11.21
댓글