728x90

<변수 스코프(scope)>


: 변수 참조가 가능한 유효범위, 통용되는 범위

 


<지역변수(Local Variable)>

- 함수 내에 선언된 변수, 변수가 선언된 블록 내에서만 유효한 변수

- 함수 시작시 생성, stack에 생성, 함수가 종료되면 변수도 소멸

- 초기화 전에는 쓰레기 값을 가지고 있음 (쓰레기 값: 이전프로그램에서 썼던 공간만 차지하는... 현재 프로그램에는 필요 없는!)

- 매개변수도 지역변수

- 블록 내에서 변수 선언이 가능(C99)

cf) C 언어 표준
- 1983 ANSI애서 ANSI C 라는 표준안을 발표
- 이후 ISO 주도로 표준안을 발표 (C99, C11)

<전역변수(Global Variable)>

- 프로그램 내 전체 함수에서 유효

- 프로그램 시작시 생성, 프로그램 종료시 소멸, 데이터 영역에 생성

- 함수 밖에서 선언

- 자동으로 0으로 초기화

단점

- 프로그램 전체에서 참조하므로 복잡성을 증대

- 모듈화의 독립성 확보가 어려움

- 메모리 공간을 점유 (프로그램 시작~끝까지 점유)

cf) 이러한 단점으로 꼭 필요한 경우에만 사용!


- 동일한 이름의 전역변수와 지역변수 사용 시 지역변수가 우선한다.

- extern을 선언하여 외부(다른 파일 등)에서도 참조 가능

ex) extern int 변수;

 

728x90

'C언어' 카테고리의 다른 글

C언어 - 문자열  (0) 2021.07.08
C언어 - 배열  (0) 2021.07.08
C언어 - 함수  (0) 2021.07.08
C언어 - 반복문  (0) 2021.07.08
C언어 - 조건문  (0) 2021.07.08

+ Recent posts