header file의 존재에 따른 컴파일 타임차이,,
글쓴이: pseudolife / 작성시간: 화, 2009/06/23 - 10:33오후
안녕하세요?
오늘 공부를 하다가,, 막혀서 나아가질 못하고 있습니다 ㅜㅜ
내용인즉,,
a.c
b.c
c.c
이런식으로 소스파일들이 있구요.
각각에 대응되는
a.h
b.h
c.h
헤더파일이 있습니다.
그리고 각 소스파일들이 모두 공통으로 사용하는
s.h
t.h
헤더파일이 있습니다.
이때,
1) 각 소스파일의 상단에 a.h, s.h, t.h를
include 할때 컴파일타임이 낭비될수 있으니
2) 아예 s.h와 t.h를 include하는 std.h라는 파일을 만들어서
각소스파일에 대응하는 *.h파일에 이 std.h를 include하라는 것입니다.
즉 예를 들어 a.c파일은 a.h파일만 include하고
이 a.h파일에 std.h 파일이 include된 형태죠..
1)과 2)가 왜 컴파일타임에서 차이가 나는지 잘모르겠어요..
그리고 이건,, 하나 더 궁금한건데,,
코드에서 #define identifier
이렇게 되어있으면 이게 뭘 말하는건가요?
#define은
#define identifier replacement 가 원래 형식인걸로 아는데,,
고수님들의 조언좀 부탁드립니다.
Forums:
...
1. 무슨 책을 보시는지 모르겠지만, vc++책이 아닌가 하네요.
말씀하시는 대로 차이가 있을리 없습니다. 그리고, 개인적으로 저는 std.h 식으로 만들어서 사용하는 것을
별로 좋아하지 않습니다. 필요한 .c에서 필요한 .h를 명식적으로 include하는게 옳다고 보는 사람입니다.
vc++에는 preheader compiler라는 것이 있어서, project setting에서 std.h를 지정해 주면
해당 header file들을 미리 컴파일 해 놓고, 이것을 사용하는 .c에서 이 내용을 그냥 가져다 사용하는 방식으로
컴파일 시간을 줄일 수 있습니다.
2. #define 중얼중얼
이런 경우 '중얼중얼'은 "값이 없이" 그냥 정의 됩니다.
#ifdef 중얼중얼
식으로 처리가 가능하겠죠.
preheader compiler ->
preheader compiler -> precompiled header
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
네
님은 예리하십니다.
답변 감사합니다^^
답변 감사합니다^^ 많은 도움 되었습니다.
댓글 달기