일부 사전 처리기 매크로를 선택적으로 기록하기 위해 코딩하고 싶습니다. 내가 제시로선택적 로깅을위한 전 처리기 디버그 매크로
ML_DEBUG(NSLog(@"Class dealloc: %@", [NSString stringWithCString:object_getClassName(self)]));
코드는 잘 작동 다음하는 .m에서 .H
//#define ML_DEBUG(x) (x) // flip this bit to do the error logging
#define ML_DEBUG(x) (1==1) // flip this bit to silence
의 예를 들어 내가 좋아 구현합니다. 그러나 나는 "아무것도하지 말라"는 경우가 아니라는 생각을하지 않습니다. 내가 쓰는 것으로 예상했다 :
//#define ML_DEBUG(x) (x) // flip this bit to do the error logging
#define ML_DEBUG(x) (;) // flip this bit to silence
을 혼자 세미콜론 유효한 목표 - C 문이기 때문에,이 작동 할 것으로 예상하지만, 컴파일러는 나에게 말하고있다 :
expected expression before ';' token
내 질문은 : 한 나는 가장 가벼운 "do nothing"문을 1==1
을 사용하여 선택하거나 덜 집중적 인 방법으로이 작업을 수행합니다. 또는 임시 디버그 로깅에 대한 내 전체 접근 방식이 잘못되었습니다.