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

C/C++에서 extern 키워드를 사용하는 방법: 전역 변수 선언부터 extern "C"까지

외부 변수(External Variable)란?

외부 변수(external variable)는 흔히 전역 변수(global variable)라고도 불립니다. 이러한 변수는 함수 외부에서 정의되며, 프로그램 실행 전반에 걸쳐 어디서든 접근할 수 있습니다. extern 키워드는 바로 이 외부 변수를 선언하고 정의할 때 사용됩니다.

또한 extern "C" 구문은 C 언어로 작성되어 컴파일된 함수를 C++ 코드에서 선언할 때 사용합니다. 이를 활용하면 C++ 프로젝트 안에서 기존의 C 라이브러리를 그대로 가져다 쓸 수 있습니다.

extern의 기본 문법

extern의 기본적인 사용 형식은 다음과 같습니다.

extern 자료형 변수명;    // extern을 이용한 변수 선언
extern 자료형 함수명();   // extern을 이용한 함수 선언

각 구성 요소의 의미는 다음과 같습니다.

  • 자료형(datatype) – int, char, float처럼 변수가 담게 되는 데이터 타입을 의미합니다.
  • 변수명(variable_name) – 사용자가 직접 지정하는 변수의 이름입니다.
  • 함수명(func_name) – 선언하려는 함수의 이름입니다.

예제

#include <stdio.h>
extern int x = 32;
int b = 8;
int main() {
   extern int b;
   printf("extern 변수 x와 b의 값 : %d,%d\n", x, b);
   x = 15;
   printf("변경 후 extern 변수 x의 값 : %d\n", x);
   return 0;
}

실행 결과

extern 변수 x와 b의 값 : 32,8
변경 후 extern 변수 x의 값 : 15

코드 설명

위 프로그램에서는 두 개의 변수 xb를 함수 밖에서 전역 변수로 선언했습니다.

extern int x = 32;
int b = 8;

이후 main() 함수 내부에서 변수를 extern으로 참조한 뒤 두 변수의 값을 출력하고, x의 값을 15로 변경하여 다시 한번 출력합니다.

extern int b;
printf("extern 변수 x와 b의 값 : %d,%d\n", x, b);
x = 15;
printf("변경 후 extern 변수 x의 값 : %d\n", x);

이 예제에서 알 수 있듯이 extern으로 선언된 변수는 파일 전체에서 공유되며, 한 곳에서 값을 변경하면 다른 위치에서도 변경된 최신 값을 그대로 읽게 됩니다. 따라서 여러 소스 파일 사이에서 전역 변수나 함수를 공유해야 할 때 extern은 매우 유용하게 활용됩니다.