카테고리 없음

전역변수와 지역변수

도영수 2017. 3. 10. 09:15

전역변수와 지역변수



기억 부류

전역

지역

정적

레지스터

지정자

extern

auto

static

register

저장 장소

정적 데이터 영역

스택

정적 데이터 영역

CPU 레지스터

선언 위치

함수의 외부

함수의 내부

함수의 내부

함수의 내부

통용 범위

프로그램 전체

함수의 내부

함수의 내부

함수의 내부

파괴 시기

프로그램 종료시

함수 종료시

프로그램 종료시

함수 종료시

초기값

0으로 초기화

초기화되지 않음

0으로 초기화

초기화되지 않음




예제 

#include <Turboc.h>

void func();

 

int global;                    // 함수 외부에서 선언되었으므로 전역변수

 

void main()

{

     int local;                 // main 함수의 지역변수

    

     global=1;                // 가능

     local=2;                  // 가능

     i=3;                             // 불가능

}

 

void func()

{

     int i;                       // func 함수의 지역변수

 

     global=1;                // 가능

     local=2;                  // 불가능

     i=3;                             // 가능

}





#include <Turboc.h>

 

int global;

 

void main()

{

     int local;

 

     printf("global is %d, local is %d\n",global, local);

}




출력값 global is 0, local is -858993460