본문 바로가기

C언어/C언어 문법

[C언어] 파일의 분할 (extern, static)

728x90
반응형

extern

 

extern 선언을 통해 다른 파일에 선언된 변수나 함수 등을 사용할 수 있다.

 

이때 파일끼리 같은 프로젝트 내에 있기만 하면 구체적으로 어느 파일에 있는지는 알리지 않아도 된다.

 

 

 

test1.c

#include <stdio.h>

int num = 0;
extern void increase();
extern int getnum();

int main()
{
	printf("num : %d\n", getnum());
	increase();
	printf("num : %d\n", getnum());
	increase();
	printf("num : %d\n", getnum());

	return 0;
}

 

 

 

test2.c

extern int num;

void increase() {
	num++; }

int getnum() {
	return num; }

 

 

 

 

 

 

extern 선언을 통해 test1.c에서도 test2.c에 사용된 함수를 문제없이 사용할 수 있다.

 

 

 

 

 

 

 

 

 

 

static 선언을 통한 외부 호출 거부

 

전역변수에 static 선언을 추가함으로써 외부 파일에서 호출을 거부할 수 있다.

 

test2.c 에서 함수 앞에 static 선언을 추가해 보겠다.

 

extern int num;

static void increase() {
	num++; }

static int getnum() {
	return num; }

 

 

 

 

호출이 거부된 것을 확인할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형