변수 - 1 [전역 변수]

실버타운·2023년 6월 2일

C++

목록 보기
5/10

변수의 종류

  1. 지역 변수
  2. 전역 변수
  3. 정적 변수 (키워드 : static)
  4. 외부 변수 (키워드 : extern)
    1은 스택 영역을 사용한다
    2, 3, 4는 데이터 영역을 사용한다.

대표적인 메모리 영역

O.S 마다 다르고 더 세분화 될 수 있지만 대표적으로 4가지로 분류할 수 있다.

  1. 스택 영역
  2. 데이터 영역
  3. 읽기 전용 (Code, ROM(Read Only Memory))
  4. 힙 영역

이 문서에서는 Data 영역에 대해 다룰것이다.


Data 영역의 특징

  • 프로그램 시작 시 생성
  • 프로그램 종료 시 해제
  • 스택 영역과 다르게 함수(스택)의 호출과 종료에 상관없이 데이터 영역에는 값을 유지 시킬 수 있다.
  • 지역 변수와 다르게 어떤 함수(스택)에서든 호출할 수 있다.
    다만, 분할 구현 등 다 수의 파일이 존재할 경우 다른 파일에서는 접근이 어렵다.

전역 변수


위 사진과 같이 함수 외부에 선언된 변수를 전역변수(사진에서 g_i)라고 한다.

위 사진에서 Test() 함수를 호출할 경우 지역변수인 i는 해당 값을 저장 하지 않을 경우, 함수의 반환과 함께 휘발된다.
즉, Test()를 n번 호출해도 i의 값은 0 과 1을 n번 만큼 오갈뿐이다.

하지만, 전역 변수인 g_i의 경우 데이터 영역에 값을 할당 하기 때문에 함수의 호출과 해제에 상관없이 Test()함수를
n번 만큼 호출했다면 g_i의 값은 n 만큼 증가한다.
profile
개발 공부 일지

0개의 댓글