이번 포스팅에서는 전역 변수와 지역 변수에 대해서 작성해보려고 합니다.
변수는 "선언 위치"에 따라 전역 변수와 지역 변수로 나눠집니다.
C언에서는 하나의 함수, 즉 {} 안에 선언된 변수를 의미한다.
지역변수는 해당 함수안에서만 유효하다
main 함수 안에 선언된 a 변수가 그 예이다
지역변수는 서로다른 함수들끼리 이름을 중복하여 사용할 수 있다.
#include <stdio.h>
int a = 0;
void main() {....}
전역변수와 동일한 이름으로 지역변수로 재정의한경우 : 이름이 같을때 지역변수가 먼저 처리되므로
var1 + var2 값은 지역변수 result에 저장되고, 전역변수 result에는 어떤 변화도 생기지
않는다. main은 전역변수 result를 출력하므로 결과값은 0이 나오게된다.
#include <stdio.h>
int result = 0; // (1)전역변수 생성
void Sum(int var1, int var2); // (2)Sum함수 선언
void main()
{
Sum(5, 3); //(3)Sum함수 호출
printf("%d", result); // (5)결과값은 무조건 0 출력
}
void Sum(int var1, int var2)
{
int result; // (4)Sum함수 result 재정의(지역변수화)
result = var1 + var2;
}
이러한 특징때문에 지역변수는 프로그램의 이식성을 떨어트리므로 꼭 필요한 경우가 아니면 사용하지 않는게 좋다.