[완료] 실행되는 메소드명을 문자열로 얻는 매크로 작성 가능할까요?
글쓴이: mauri / 작성시간: 금, 2008/07/04 - 10:33오전
안녕하세요..__);
프로그램 동작상태를 로그로 출력하게 되어 있습니다.
그런데 다음과 같은 클래스와 메소드가 있을 경우 로그의 요청 사항이 다음과 같습니다.
<클래스> Class CTest { bool TFunc1(); bool TFunc2(); }
<로그>
"CTest::TFunc1(). -메시지:어쩌고 저쩌고-"
"CTest::TFunc2(). -메시지:어쩌고 저쩌고-"
하드 코딩으로 넣자니, 메소드당 적게는 3줄에서 많게는 20여줄 넘게도 들어가는데요..
만에 하나 메소드를 수정할일이 있으면, 이걸 일일이 찾아서 고쳐줘야 하고..
혹시나 깜빡하고 빠뜨리거나 오타라도 나면 로그 정보 출력기에서 출력이 되질 않겠지요?
그러니.. 다음과 같이 매크로를 작성해서.
#define PEEK_METHOD_NAME XXX##XXX
메소드 내에서
printf("%s. 메시지-어쩌고 저쩌고", PEEK_METHOD_NAME);
이렇게 사용을 하고 싶은데요.. 아무리 머리를 굴려도 좋은 아이디어가 나오질 않습니다.
조언 부탁드리겠습니다.. __):
즐프되세요~ __);
Forums:
predefined macro를 써보세요.
컴파일러마다 다를텐데... 예전 기억을 거슬러 올라가 보면
뭐 이런 이름으로 함수명을 가져 올 수 있었던 것 같습니다.
출력형태가 어떨지는 모르겠습니다.
vc++
http://msdn.microsoft.com/en-us/library/b0084kay.aspx
gcc
https://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/cpp/predefined-macros.html
irondog님 감사드립니다.
덕분에 한방에 해결됬습니다.. ^^ 감사드립니다~
댓글 달기