C/C + 사용하지 않은 변수 경고에 대한 솔루션을 검색했지만 필요한 것은 없습니다. 상황은 다음과 같습니다.디버그 코드 및 C++ 사용되지 않은 매개 변수 경고
PC에서 알고리즘을 개발하고 있으며이를 실제 임베디드 플랫폼으로 이식합니다. PC 버전에는 PC의 모니터에 이미지를 보여주는 디버그 코드가 있습니다. 임베디드 플랫폼에는 불행히도 모니터가 없습니다. 물론 임베디드 플랫폼에는 디버그 코드가 전혀 필요하지 않습니다.
코드를 구별하기 위해, 우리는이 작업을 수행 할 수 있습니다#ifndef EMBEDED
MyDebugCode(parameter1, parameter2, parameter3);
#endif
그러나, 나는 그 디버그 기능의 많은 호출이 있기 때문에이 너무 형편없는 것을 결정한다. 그 EMBEDED
조건 코드를 오염시킬 것입니다. 대신에, 나는 다음과 같은 디버그 기능 내부 조건부 컴파일 플래그를 작성하려고 :
inline void MyDebugCode(type1 p1, type2 p2, type3 p3)
{
#ifndef EMBEDED
DisplaySomethingOnMonitor(p1, p2, p3);
...
...
...
#endif
}
을 나는 기능에, 한 번 #ifndef/#ifdef
를 작성하고, 그 #ifndef/#ifdef
없이 여러 번 호출 할 수 있도록.
이제 EMBEDED
이 정의되면 사용하지 않을 가능성이 있습니다 p1
, p2
및 p3
입니다. 이게 문제 야.
또한 EMBEDDED
이 정의되어있을 때 inline
이 존재하지 않더라도 전체 디버그 기능을 완전히 최적화 할 수 있기를 바랍니다. 이것은 보조이지만.
누구나 더 나은 솔루션/사례가 있습니까?
이러한 매개 변수는 클래스 인스턴스에 대한 참조 일 수 있습니다.
컴파일러는이 그것을 원하지 않는 경우 아무것도로 확장 MyDebugCode
매크로를 만드는 것입니다 할 수있는 g ++
컴파일러에 특정 파일에 대한 특정 경고를 무시하는 pragma가 없습니까? – OldProgrammer
컴파일러는 g ++ –
g ++의 pragma를 검색하는 것을 잊어 버립니다. 잠깐 ... –