저는 프로그램을 작성 중이며 다양한 매크로 변수의 값에 따라 다양한 유형의 디버깅 정보를 출력하고 싶습니다. 그런 다음 화면에 다른 레벨의 정보가 기록됩니다). 예를 들어매크로를 사용하여 C++에 디버깅 문을 포함하는 방법
, 내 프로그램에 대한 화면에 정보를 인쇄 다음과 같은 코드가 있다고 가정 (이 D1 전화) :
cout << "% Percentage complete: "
<< ceil((static_cast<double>(idx)/static_cast<double>(ITERATIONS))*(100.00))
<< "%" << endl;
cout << "x = [ x; ";
for(int i=0; i<space.getDimension(); i++)
cout << visited.vec[visited.bestIndex].x[i] << "\t";
cout << "];" << endl;
를 이제 또한 내가 다른 정보를 인쇄 다음과 같은 코드가 있다고 가정 내 프로그램에 대한 화면에 (이 D2를 전화) :
이cout << "best = [ best; "
<< visited.vec[visited.bestIndex].meanQALY() << "];\n" << endl;
space.displayConstraintsMATLAB(idx+1);
나는 그런 #D1
가 AS 문을 삽입 할 수 있도록하고 싶습니다 d #D2
을 내 코드의 특정 위치에두고 매크로 프로세서에서 이러한 문을 위의 코드 블록으로 바꿉니다.
어떻게하면됩니까?
(매크로 이상적인 솔루션하지 않으면 내가이 일을 다른 방법에 대한 제안을 듣고 행복 해요.)
'#define FOO','#ifdef FOO * codeblock * #endif'와 같은 뜻입니까? –
@DennisMeng 예, 그렇습니다. 그리고 (그러나) 코드를 읽을 때 디버그 관련 코드 블록을 계속 살펴보고 싶지는 않습니다. 디버그 관련 코드가있는 부분을보고 싶습니다. – synaptik
글쎄, 커다란'#define'을 할 수는 있었지만, 그게 틀린 것 같아서 ... –