#include <stdio.h>
#if defined(__C99__FUNC__)
#define PRINT_FUNC_NAME() printf (" In function %s ¥n", __func__);
#elif defined(__FUNCTION__)
#define PRINT_FUNC_NAME() printf (" In function %s ¥n", __FUNCTION__);
#else
#define PRINT_FUNC_NAME() printf (" Function name unavailable¥n");
#endif
void foo(void);
int main(int argc, char **argv)
{
int k = 1;
PRINT_FUNC_NAME();
foo();
return 0;
}
void foo (void)
{
PRINT_FUNC_NAME();
return;
}
In function main
In function foo
これは、C++ プログラムで仮想関数とともに __FUNCTION__ マクロを使用した例です。
#include <stdio.h>
class X { public: virtual void func() = 0;};
class Y : public X {
public: void func() { printf("In function %s ¥n", __FUNCTION__);}
};
int main() {
Y aaa;
aaa.func();
}
In function Y::func()