Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 extern 키워드 완벽 정리: 전역 변수의 선언과 정의

C 언어의 extern 키워드란?

외부 변수(external variable)는 흔히 전역 변수(global variable)라고도 부릅니다. 전역 변수는 함수 바깥쪽에서 정의되며, 프로그램이 실행되는 동안 어디에서든 접근할 수 있습니다. 또한 함수 안에서 전역 변수의 값을 자유롭게 변경할 수도 있습니다. C 언어에서는 이러한 외부 변수를 선언하거나 정의할 때 extern 키워드를 사용합니다.

전역 변수의 주요 특징

  • 범위(Scope) – 특정 함수에 종속되지 않고 프로그램 전체, 즉 전역 범위에서 유효합니다.
  • 기본값(Default Value) – 별도로 초기화하지 않으면 0으로 초기화됩니다.
  • 수명(Lifetime) – 프로그램 실행이 종료될 때까지 메모리에 유지됩니다.

extern 키워드의 핵심 포인트

  • 외부 변수는 여러 번 선언할 수 있지만, 정의는 단 한 번만 가능합니다.
  • extern 키워드는 함수나 변수의 가시성(visibility)을 확장하기 위해 사용됩니다.
  • 함수는 기본적으로 프로그램 전체에서 접근 가능하므로, 함수에 extern을 붙일 필요가 없습니다. 오히려 코드의 중복만 늘어날 뿐입니다.
  • extern 키워드가 붙은 변수는 정의가 아니라 '선언'만 수행한다는 의미입니다.
  • extern 변수를 초기화하면 그 문장은 곧 정의(definition)로 간주됩니다.

예제 코드

다음은 C 언어에서 extern 변수를 사용하는 대표적인 예제입니다.

#include <stdio.h>
extern int x = 32;
int b = 8;
int main() {
    auto int a = 28;
    extern int b;
    printf("The value of auto variable : %d\n", a);
    printf("The value of extern variables x and b : %d,%d\n",x,b);
    x = 15;
    printf("The value of modified extern variable x : %d\n",x);
    return 0;
}

실행 결과

The value of auto variable : 28
The value of extern variables x and b : 32,8
The value of modified extern variable x : 15

위 예제에서 x는 extern 키워드와 함께 초기화되었으므로 정의로 간주되며, auto 변수 a는 지역 변수로 값 28을 가집니다. main 함수 안의 extern int b;는 이미 정의된 전역 변수 b를 참조하는 선언입니다. 이후 x의 값을 15로 변경하면 전역 변수이기 때문에 변경된 값이 그대로 출력되는 것을 확인할 수 있습니다.