| [ 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(..)를 옮겼슴다. --- 雲心如水心 |