헤더에서 선언된 변수 재사용 궁금증입니다.

프로그래밍 일반에 관한 포럼입니다.

Moderator: 류광

Locked

헤더에서 선언된 변수 재사용 궁금증입니다.

Post by »

주제인 헤더안에 선언된 변수 재사용이라고 적엇지만 어떻게 보면 재사용이 아닌 비껴가기일지도 모르겠습니다. 요즘 rmxftmpl.h 에 관한 파일을 보니

#ifndef _A_
#define _A_

int k = 0;

#endif

이런 형식이더군요. 그러다 보니 하나의 파일에서 include할땐 문제가 없지만 두개 이상의 파일에서 include를 하면 이미 정의되어있다고 멀티정의 에러가 나오더군요.

제가 생각하기에 첫번째 파일이 접근할때 _A_를 정의가 안되어잇으니 정의하고서 int k = 0을 하고서 두번째 파일이 접근할때 _A_가 정의되어 잇으니 비껴가야될것같은데, 어찌된 영문인지요. 이런 상황맞아보신분은 어떻게 비껴갔는지요 ?
.

헤더파일은 변수를 선언하는 곳인데.. 님께서는 정의를 하셨군요

Post by . »

"extern"을 붙이시지요..

// a.h
extern int a;


// a.cpp
int a = 0;

Post by »

rmxftmpl.h 를 보시면 변수 선언이 되어있는데요.

이 파일을 MS에서 이렇게 해놓은걸보면 뭔가 다른 방법으로 접근이 된다는게 아닐까요?
Locked