たとえば、この単一の階乗を考えてみましょう。
int factorial(int number) {
int temp;
if(number <= 1) return 1;
temp = number * __FUNCTION__(number - 1);
return temp;
}
それは与えます:
error: '__FUNCTION__' cannot be used as a function
関数名の代わりにこの定数を使用するという考え方なので、関数の名前を変更した場合、関数がそれ自体を呼び出す場所で名前を更新するためにコードの残りの部分を調べる必要はありません。