C언어

[C언어] 전역변수 extern

코딩 메모장 2024. 9. 24. 23:31
728x90

 

extern 키워드는 C와 C++ 프로그래밍 언어에서 사용되는 키워드로, 주로 변수나 함수의 외부 링크를 선언하는 데 사용됩니다.

 

1. 기본 개념

  • 정의와 선언: 변수를 정의하는 것은 메모리 공간을 할당하고 값을 초기화하는 것이고, 선언은 변수의 존재를 알리는 것입니다. extern은 변수가 다른 파일에서 정의되었음을 나타내는 선언입니다.

2. 사용 예

전역변수에 대한 사용 예

// file1.c
#include <stdio.h>

int globalVar = 100;  // 전역변수 정의

void display() {
    printf("Global Variable: %d\n", globalVar);
}

// file2.c
#include <stdio.h>

extern int globalVar;  // 다른 파일에 정의된 전역변수 선언

void show() {
    printf("Accessing Global Variable from another file: %d\n", globalVar);
}

함수에 대한 사용 예

// file1.c
#include <stdio.h>

void greet() {
    printf("Hello from file1!\n");
}

// file2.c
#include <stdio.h>

extern void greet();  // 다른 파일에 정의된 함수 선언

int main() {
    greet();  // file1.c의 greet 함수 호출
    return 0;
}

3. 특징

  • 링크: extern으로 선언된 변수나 함수는 다른 파일에서 정의되어 있어야 하며, 링커가 이들을 연결합니다.
  • 범위: extern으로 선언된 변수는 해당 파일 내에서만 사용 가능하지만, 다른 파일에서 정의된 변수와 연결될 수 있습니다.
  • 초기화: extern으로 선언된 변수는 초기화할 수 없습니다. 초기화는 해당 변수가 정의된 파일에서만 가능합니다.

4. 장점

  • 모듈화: 여러 파일로 코드를 나누어 관리할 수 있어, 코드의 가독성과 유지보수성이 향상됩니다.
  • 재사용성: 다른 파일에서 정의된 변수나 함수를 쉽게 재사용할 수 있습니다.

5. 주의사항

  • 변수나 함수의 이름이 충돌하지 않도록 주의해야 합니다.
  • extern으로 선언한 변수는 반드시 한 곳에서 정의되어야 하며, 그렇지 않으면 링크 오류가 발생합니다.
728x90

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

[C언어] 사이드 이펙트 side effect  (0) 2024.09.25
[C언어] 공용체 union  (0) 2024.09.24
[C언어] 구조체 struct  (1) 2024.09.24
[C언어] 정적 변수 static  (0) 2024.09.24
[C언어] <stdint.h>  (0) 2024.09.23