CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): swhan (차카게산다)
날 짜 (Date): 2003년 7월 22일 화요일 오후 01시 32분 38초
제 목(Title): Re: 디버그 정보 얻기 (파일이름/라인수)


MACRO를 function처럼 이용하기 위한 방법입니다.
if(0) ; else ;
는 문제 없지만 
if(0) ;; else ;
이건 문제가 있죠.

마찬가지로 
if(0) {} else  {}
는 문제가 없지만
if(0) {}; else {}
는 문제가 있습니다.

guest님 말씀은
if(0) do{ {} }while(); else {}
면 문제가 없으꺼라는거고.. linux커널에서는 많이 이용하는 방법이다..

제 말은
if(0) { {}; } else {}
로 쓰는 습관을 들이는게 낫다..는 얘기고. 

(위의 예들은 컴파일시에 발견될 문제지만.. if문을 몇 조합하면 컴파일은
무사히 통과하고 이상하게 동작하는 경우도 생길 수 있습니다.)

뭐.. 취향의 문제라고나..
제 개인 취향으로는 #define마다  do while로 떡칠하는건 별루입니다. 

근데.. 가끔은 FUNCTION을 사용하고 if문같은걸 {}로 묶어주지 않은 기존 
코드들과 쌈박질을 해야 할 경우에는 do while이 참 유용하다고 생각합니다.

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