일부 코드 줄을 디버그 모드에서만 "활성"으로 설정하고 해제 모드에서는 무시해야합니다. 다음과 같은 일을 할 수있는 방법이 있나요 : _TEST_
가 정의되지 않은 경우해제 모드에서 자동으로 회선에 댓글을 쓰는 방법은 무엇입니까?
#include <iostream>
using namespace std;
#ifdef _TEST_
#define _cerr cerr
#else
#define _cerr // cerr
#endif
int main() {
_cerr << "TEST message" << endl;
}
있도록 일부 라인은 주석 또는 코드에서 제거됩니다. 주석은 나머지 부분보다 먼저 처리되므로이 코드는 잘못되었습니다. 하지만 #ifdef를 명시 적으로 사용하지 않고 필요한 동작을 얻으려면 어떻게해야합니까?
유용한 매크로를 한 매크로에서 세미콜론 같은 코드보다 C++하게 추가하지 –
(추가 강제로 사용자가','DEBUG_ONLY' 절'후) – xtofl
나는이 매크로를 볼 수있는 유일한 문제는 너야 한 문장으로 제한됩니다. 나는 개인적으로'do {x; } while (0)'절은 매크로에서 여러 개의 명령문을 허용합니다 (일부 컴파일러가'while (0)'부분에 대해 불평을하더라도 ... : /) –