일반적인 경우 디버깅 함수를 추가할 경우 조건부 컴파일을 이용해서 처리한다.
간단히 예를 보면
#ifdef DEBUG
fprintf(stderr,'[%d:%d]\t%s\n",__FUNCTION__,__LINE__,msg );
#endif
그런데 이런식으로 하나의 값을 보기 위해 #ifdef부터 해서 3개줄로 표시를 해야한다. 본인 경험으로는 이런 코드가 많이 질수록 코드가 간결해 보이지 않았다. 보다 코드를 간결하게 처리하기 위해서 다음과 같은 방법을 소개한다.
우선 c파일 상당에
#ifdef DEBUG
#define debug(x) x
#else
#define debug(x)
#endif
위와 같이 선언을 하고 디버깅을 위해 변수값을 추가하는 부분에서는
debug( fprintf(stderr,'[%d:%d]\t%s\n",__FUNCTION__,__LINE__,msg ));
처럼 처리를 한다.
조건부 컴파일과 관련된 코드는 코드 상단에 한번만 정의하면 되기 때문에 코드작성도 효율적이고 코드역시 보다 간결하게 보인다.
'C언어' 카테고리의 다른 글
한글 putty (0) | 2009.04.20 |
---|---|
[코드정리] if else 문을 한줄로 (0) | 2009.04.13 |
time 33 hash function ( apr에서 사용하는 해시 함수 ) (0) | 2009.03.28 |
대용량 검색을 위한 TRIE 업그레이드 (0) | 2009.03.26 |
[APR] character string handling (0) | 2009.01.30 |