事前定義マクロの例

この例では、現行関数名が戻されるよう C99 __func__ ID の可用性をテストするための、__FUNCTION__ マクロおよび __C99__FUNC__ マクロの使用方法を示します。
#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++ のみ これは、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()