MY MEMO

[C] 개념 다지기 - static, extern 본문

STUDYING/C

[C] 개념 다지기 - static, extern

l_j_yeon 2017. 10. 1. 02:45


C언어에서 static은 변수를 사용할 수 있는 범위를 그 파일 안으로 한정하는 것이다.

예를 들어 위와 같이 있다면

현재 int count는 전역변수이고

function()안에 있는 static int count는 function안에서 사용되는 정적 변수이다.

이 변수는 코드를 실행할 때 한번 초기화 되고 다시 이 변수를 초기화한 코드를 만나더라도 다시 초기화되지 않는다.


이는 함수에서도 적용된다.

만약 같은 이름의 함수를 사용해야한다면

여러 파일에 이름이 같은 함수를 여러개 정의한다면 오류가 발생한다.


하지만

함수 앞에 static을 사용해준다면 그 파일 안에서만 사용 가능하기 때문에 오류가 발생하지 않는다


A.c


B.c


만약 두개의 코드가 있다고 하자.

B 파일의 index 변수를 사용하고 싶은데 

static으로 정의하면 파일에 한정되고

int로 정의하면 그 파일 내에서 전역이다


이럴때 index을 extern을 이용한다면

밖에 있는 변수를 가져온다는 뜻이 된다.


+) extern static int variable =0;

은 맞지 않는 문법이다.


'STUDYING > C' 카테고리의 다른 글

[C] 개념 다지기 - Union  (0) 2017.10.01
[C] 개념 다지기 - linked list  (0) 2017.10.01
[C] 기초 개념 다지기 - array  (0) 2017.10.01
[C] 개념 다지기 - struct, Overloading  (0) 2017.10.01
[C] 개념 다지기 - pointer  (0) 2017.10.01
Comments