본문 바로가기
공부

전역변수 VS 지역변수

by twinkite 2021. 10. 25.
반응형

- Code 영역 : 실행할 프로그램의 코드가 저장되는 영역. 테스트 영역이라고도 부른다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리한다. 

- Data 영억 : 전역변수, static변수, 초기화된 배열과 구조들이 저장된다. 프로그램이 실행될 때 생성되고 프로그램이 종료될 때 시스템에 반환된다. 

- Heap 영역 : 프로그래머가 필요에 의해 동적으로 할당되는 메모리가 위치하는 영역이다. 

- Stack 영역 : 지역변수 및 매개변수, return address 등이 저장되어 있다. 함수 호출 시 stack영역에 성성되고 사용된 후 시스템에 반환된다. 

data 영역은 컴파일 타임에 결정되고 heap 영역은 런타임에 요구될 때 마다 사용된다. 

전역변수와 지역변수의 차이?

 지역변수는 메모리상의 스택 영역에, 전역변수는 데이터 영역에 할당됩니다. data영역은 프로그램이 실행될 때 생성되고 종료될 때 반환되므로 어느 함수에서나 전역변수를 사용할 수 있습니다. stack영역은 함수의 호출이 끝나면 반환되므로 stack영역에 저장된 지역변수와 매개변수는 함수의 호출이 끝나면 사라진다. 따라서 선언 된 함수 밖에서는 사용할 수 없습니다.

 

 

틀린 내용은 언제든 지적 부탁드립니다

반응형