c언어 인클루드에 대해서...
글쓴이: 익명 사용자 / 작성시간: 목, 2002/03/14 - 12:22오전
안녕하세요..
c언어 질문이 있어서요.
보통 c언어는 include를 써서 필요한 헤더화일 같은걸
포함 시키는걸로 알고 있습니다.
그런데 헤더화일에는 함수 선언만 있지 실제적으로
코딩해 놓은 정의는 없는것 같더군요...
표준 헤더파일이 아닌것도요..
정의가 있어야 함수가 수행이 될것같은데요..
정의는 어디에 있죠?
가령
aa.c 라는 main()함수가 들어 있는 소스가 있다고 치죠.
aa.c 에 include "group.h"라는 줄이 있는데
group.h 에는 함수의 선언만 있고 정의는 없습니다.
정의는 대체 어디 있죠?
제가 잘못 본걸까요?
고수님들의 답변을 기다리겠습니다.
그럼 전 이만.. 총총..
Forums:
Re: c언어 인클루드에 대해서...
정의는 라이브러리에 있지요..ㅋㅋ
신주호 wrote..
안녕하세요..
c언어 질문이 있어서요.
보통 c언어는 include를 써서 필요한 헤더화일 같은걸
포함 시키는걸로 알고 있습니다.
그런데 헤더화일에는 함수 선언만 있지 실제적으로
코딩해 놓은 정의는 없는것 같더군요...
표준 헤더파일이 아닌것도요..
정의가 있어야 함수가 수행이 될것같은데요..
정의는 어디에 있죠?
가령
aa.c 라는 main()함수가 들어 있는 소스가 있다고 치죠.
aa.c 에 include "group.h"라는 줄이 있는데
group.h 에는 함수의 선언만 있고 정의는 없습니다.
정의는 대체 어디 있죠?
제가 잘못 본걸까요?
고수님들의 답변을 기다리겠습니다.
그럼 전 이만.. 총총..
답변해 주셔서 감사합니다.(냉무)
.
Re: c언어 인클루드에 대해서...
mylib.h -------------------------
void fun1();
void fun2();
---------------------------------
myfunc.c -------------------------
void func1()
{
/* .... */
}
void func2()
{
/* ... */
}
--------------------------------
myprog.c -----------------------
#include "mylib.h"
void main()
{
func1();
func2();
}
---------------------------------
위에 세개의 파일이 있을때,
$ cc -c myfunc.c
라고 하면 myfunc.o 라는 오브젝트 파일이 생깁니다.
$cc -o myprog myprog.c myfunc.o
라고 컴파일 하겠지요.
myprog.c에서 include하는 mylib.h에는 함수의 정의부분이 없지요.
라이브러리란 것은 간단히 관련된 여러 오브젝트 파일들의 묶음 입니다.
표준C라이브러리는 명시하지 않아도 컴파일러가 알아서 수행해주기 때문
에 적지 않는 것일 뿐 입니다.
댓글 달기