ACE_DEBUG 무시하기

45 views
Skip to first unread message

r2nato

unread,
Jul 12, 2006, 2:32:14 AM7/12/06
to kaug
APG에는 ACE_NDEBUG 를 정의하면 ACE_DEBUG가 동작하지
않는다고 쓰여 있는데, 잘못된 내용이더군요.
ACE_NDEBUG는 ACE_ASSERT에 대해서만 적용되는 것 같습니다.

http://www.riverace.com/acebooks/apg_errata.htm 에 둘째줄 ^^;

이 ACE_NLOGGING 도 굳이 config.h에 넣을 필요없이

Log_Msg.h를 include하기 전에 정의해주면 되겠더군요.


Log_Msg.h라도 살펴봤으면 알 수 있었는데, 책에
적힌대로만 하다가
삽질 좀 했네요 -_-a


근데 Log_Msg.h를 보면..
#if defined (ACE_NLOGGING)
...
#define ACE_DEBUG(X) do {} while (0)
...

ACE_DEBUG의 동작을 무시하기 위해서 의미없는 구문으로
치환해버린다는 의도는 알겠는데, 왜 굳이 do{}
while(0)을 쓰는지 궁금합니다. ace소스 전체에서 do{
code... }while{0} 문을 종종 보는데, 어떤 이유가 있는
걸까요? 그냥 블럭으로만 감싸도 될것같은데 말이죠.

레이옷

unread,
Jul 12, 2006, 5:05:29 AM7/12/06
to kaug
http://kldp.org/node/49951

위 링크를 참고하셔용~

r2nato

unread,
Jul 12, 2006, 10:26:16 AM7/12/06
to kaug
이야... 정말 놀랍습니다.
리눅스 커널에서부터 쓰이기 시작했나보군요.
짧은 플밍 인생에서 두번째 shock네요. 첫번째는
임시변수 안쓰고 swap하는 코드였는데 ㅎㅎ;

좋은 정보 감사합니다 ^_^

Reply all
Reply to author
Forward
0 new messages