소소 파일의 분할이라고 이해하겠습니다.
만약 make를 안쓰고 Visual C++ 나 Borland C++ 같은 툴을 쓰신다면 빌드하면 자동으로 모든 *.c 파일을 컴파일합니다. .h 는 컴파일을 하지 않습니다.
헤더라고 하는 .h 파일은 #include "test.h" 이런 식으로 흔히 붙이죠?
이건 test.h를 그대로 긁어다 #include "test.h" 위치에다 붙입니다.
가령 test.h 가
int yo = 3;
으로 되어 있고,
test.c 가
#include "test.h"
int ha = 2;
로 되어 있다면 컴파일 시점에 test.c 는
int yo = 3;
int ha = 2;
이렇게 바뀝니다. 고로 test.h 가 여러 소소 파일에서 include되면 조심을 해야 겠죠.
오류 메시지가 아마 multiple defined 이런식으로 되어 있을 건데 헤더에는 메모리에 뭔가를 잡는 선언은 하면 안됩니다.
가령
int yo = 3; 같은 거죠
extern int yo; 는 괜찮습니다.
#ifndef _TEST_H_
#define _TEST_H_
....
#endif
식으로 연속 참조가 안되도록 가이드를 붙이는 것도 좋습니다.
관동 님이 쓰신 글 :
: 죄송합니다. 질분이 있어서 이렇게 글을 올립니다.
:
: 제가 C++ 공부를하고있는데 파일의 분할이라는 문제가나와서 C언어 를 다시 한번 보고있습니다.
:
: 그와중에 파일 분할 은 다 할줄 아는데.... 컴파일을 어떻게 해야될지를 모르겠습니다.
:
: 교재에 나와있는 문제의 답을 그대로 2개의 .c파일과 하나의 .h 파일로 만들었는데 컴파일을 했는데 자꾸
:
: 오류가나와서.... 3개를 동시에 컴파일을 해야되나요?? 분할을 해서 하나만 하면 당연히 오류가 나오는건 알고있습니다.
:
: 분할을 했는데 어떻게 3개를 동시에 컴파일을 해야하는지 알려주시면 감사하겠습니다.
|