Programming

[C/C++] 함수 이름 얻는 방법

현재 함수의 이름을 구하는 방법으로, C99에서 __func__라는 이름을 제공한다. 매크로는 아니고 미리 정의된 이름이다.

GCC의 경우에는 __func__과 __FUNCTION__을 사용할 수 있다. __FUNCTION__의 경우에는 매크로에 해당된다.
C와 C++에서 동일하게 사용할 수 있다.

개인적으로는 프로그램 작성 시에, 각 함수 시작부분에

#ifdef VERBOSE
cout << "this_function_name(num=" << num << ")" << endl;
cout.flush();
#endif // VERBOSE

과 같이 함수의 이름과 parameter의 값을 보여주는 디버그 코드를 심는 작업을 잊지 않는 편이다. __func__를 잘 활용하면 직접 함수의 이름을 hard-code하는 수고를 덜게 될 것이다.

답글 남기기