Public/tip & tech

[코드정리]debuging 함수

quantapia 2009. 5. 12. 17:47

일반적인 경우 디버깅 함수를 추가할 경우 조건부 컴파일을 이용해서 처리한다.

 

간단히 예를 보면

 #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 ));

 

처럼 처리를 한다.

 

 

조건부 컴파일과 관련된 코드는 코드 상단에 한번만 정의하면 되기 때문에 코드작성도 효율적이고 코드역시 보다 간결하게 보인다.