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 |