아직 시작단계인 초보입니다.
글쓴이: gokore / 작성시간: 금, 2011/09/09 - 10:06오후
현재 교수님께서 디바이스 드라이버 예제 코드를 해석하라고 과제를 내주셨는데
함수 하나부터 시작해 ctag를 쳐 나가다 보면 알 수 없는 코드들이 많이 나옵니다.
그 때 드는 생각이 "아 이걸 계속 봐야하나?" 라는 생각이 드는데요.
예를들면
extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __THROW;
에서 clockid_t가 뭔지 모르니까 또 ctag를 하면
__STD_TYPE __CLOCKID_T_TYPE __clockid_t;
이런게 나오는 식으로 계속 가게 되는데요
여기 있는 개발자 분들 처음 시작하셨을 때 이런 난관을 어떻게 극복하셨나요 ??
넋두리로 들릴 수 있겠지만 어떤 자세로 대처하셨는지 배우고 싶습니다.
Forums:
너무 걱정하셨나본데요?
라이브러리 파일들, 특히 시스템 라이브러리들을 보면
typedef 선언이 전부인 헤더파일들을 자주 보게 됩니다.
대부분 int나 float, double 선언이 대부분이고,
가끔 char 배열형도 보이기도 하고요...
포인터 선언도 꽤 있습니다.
자료형 선언은 특정 개념을 구현하기 위해 쓰는 경우가 많고,
종국엔 CPU에서 2진수로 표시되는 자료가 될 뿐입니다.
컴파일러에 선언된 기본 자료형을 벗어나는 일도 없고,
그것을 다른 이름으로 선언되었다고 해서,
그것이 다른 타입이 될리는 없습니다.
__STD_TYPE __CLOCKID_T_TYPE 이라고 써 있을 때,
__STD_TYPE이 무엇인지, __CLOCKID_T_TYPE이 무엇인지
살짝 구글링만 해도 알 수 있을 것입니다.
종국엔 C 컴파일러, 시스템 커널에 대해 공부하다보면,
왜 이렇게 자주 데이터형 선언을 해서 구현해야 하는지
알게 될 때가 옵니다. :)
궁금하고, 눈에 밟히면 찾아서 확인해보는게 당연하죠. ^^
댓글 달기