CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): gureumi (▷◁구름)
날 짜 (Date): 2003년 7월 20일 일요일 오전 07시 08분 08초
제 목(Title): Re: 디버그 정보 얻기 (파일이름/라인수)




#define ASSERT(cond) if( !(cond) )\
{printf( "assertion error line %d, file(%s)\n", \
__LINE__, __FILE__ );}

----
위의 코드를 do { } while(0)으로 감싸주시는게 좋을 듯 합니다.

if(aaa) ASSERT(cond)
else bbb();

이런 코드가 있다면, else부분이 ASSERT 매크로의 if문에 걸리게 됩니다.

또한 ASSERT(cond)뒤에 ;를 덧붙이면,

if(aaa) if(!cond) { printf....} ; else bbb(); 로 preprocessing이 되어서

;가 null-statement로 파싱되어 else가 붙을 곳이 없게 됩니다.

                                                              
-----------
앗 맞습니다.

깜박했네유.. 
실수하나.. 위에 #define문과  같은 줄로 if(..)를 옮겼슴다.

---
                      雲心如水心
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.