함수를 아직 구현하지 않았다는 것을 지정할 수 있도록 매크로를 만들려고합니다. 호출 될 때 프로그램이 중단됩니다. 여기에 내가 무엇을 최대 온의 :함수가 구현되지 않은 매크로입니까?
#define NIMPL crash(__PRETTY_FUNCTION__ " not implemented yet")
그리고 당신이 그렇게처럼 사용하십시오 : 그러나
void myFunction() {
NIMPL;
}
, 이러한 사용이 오류가 발생합니다
../feta/include/feta.h:19:41: error: expected ‘)’ before string constant
#define NIMPL crash(__PRETTY_FUNCTION__ " not implemented yet")
^
crash()
는 기능입니다 하나의 문자열을 매개 변수로 받아들이고 메시지를 인쇄하고 exit(1)
을 호출합니다.
연결이 잘 작동하지 않고 __PRETTY_FUNCTION__
만 단독으로 확인할 수 있습니다. 또한 __PRETTY_FUNCTION__
없이 두 문자열을 연결하면 정상적으로 작동합니다 : "<stuff>""<other stuff>"
. 그러나 동시에 둘 다하는 것은 효과가 없습니다.
stringizing operator을 사용해 보았지만 작동하지 않았습니다 (GCC에도 존재하는 경우).
C의 경우'__Punc'_FUNCTION__과 달리'__func__'을 사용할 수도 있습니다. '__PRETTY_FUNCTION__'은 C++에서만'__func__'과 다릅니다. (이것은 당신의 문제를 해결하지 못합니다.) –
2 문자열 사이 ##에 누락되었습니다. – pm100
@ pm100 :'__PRETTY_FUNCTION__'은 매크로가 아닌'char []'객체의 이름으로 취급되므로'## '도움을주지 않을거야. –