extern keyword 


일반적으로 전역 변수를 선언 하면, 한 파일 내에서 전역 변수로 접근이 가능하다.

다른 파일에서 선언된 전역 변수를 접근하기 위해서는 extern keyword 를 사용한다.


사용법은 간단하다.

전역 변수 선언 시 일반적으로 선언 하듯 선언 하고,

접근하고자 하는 다른 파일에서 data type 앞에 extern 을 선언하면, 접근이 가능하다.

int a=5;


extern int a;

printf("a=%d in other file", a);

//print result

//a=5

extern keyword 를 사용하면 다른 파일에서 접근이 가능하기 떄문에, 즉, 다른 파일에서 해당 이름의 변수를 가지고 있기 때문에

같은 이름의 변수를 두 개를 가지는 등의 의도치 않은 동작을 할 수 있다.

사용 시에 주의가 필요하다.


extern keyword 의 또다른 사용법이 있다.

C++ 파일을 사용하는데, C로 된 파일/함수 등을 include 하고 싶은 경우!

extern "C"{

#include <stdio.h>

void foo();

}


'Programming > C Language' 카테고리의 다른 글

static  (0) 2018.07.13
가변 인자(variable arguments) stdarg.h  (0) 2017.12.11
static  (0) 2017.06.20
Floating Point Bit 출력 방법  (0) 2017.06.08
전처리기 명령어  (0) 2017.06.07

static Keyword


기본적인 C/C++ 프로그래밍에서 흔히 사용하는 키워드는 아니다.

하지만, Code 가 여러 파일로 구성되고, 여러 파일에서 서로 참조하고 왔다갔다하면서 부터 사용하게 되는 keyword 일 수 있다.


static 은 정적 변수라고 하는데, 

함수 내부에 선언하는 지역 변수는 그 지역이 사라지면서, 함께 사라지는데 이를 방지 하기 위한 keyword 이다.

함수 내부의 변수를 data type 앞에 static 을 붙여 선언하면, 메모리 위치에서 사라지지 않아, 

다음에 함수가 call 되더라도 이전 값을 유지하고 있다.

다만 여전히 지역 변수이기 때문에, 해당 함수에서만 읽고 쓸 수 있다.

static 으로 선언한 변수의 initialize 는 처음 한 번 만 실행 된다.

void function(){

static int a = 1;

print("%d\t", a);

a++;

}


int main(){

function(); //print result : 1

function(); //print result : 2

function(); //print result : 3

return 0;

}


'Programming > C Language' 카테고리의 다른 글

static  (0) 2018.07.13
가변 인자(variable arguments) stdarg.h  (0) 2017.12.11
extern  (0) 2017.06.21
Floating Point Bit 출력 방법  (0) 2017.06.08
전처리기 명령어  (0) 2017.06.07

작은 거짓말은 어쩔 수 없이 시작되어, 큰 거짓말을 낳곤 한다.


그래서 거짓말이 나쁜 것은 아닐까?

'Life > A sentense of the day' 카테고리의 다른 글

Give and take  (0) 2017.06.26
No pain, no gain  (0) 2017.06.22
경험  (0) 2017.06.20
출근 시간  (0) 2017.06.20
여행 기념품  (0) 2017.06.16

+ Recent posts