マクロ名と置換リストが同じ前処理ディレクティブをいくつか見つけました。たとえば、gcc によって提供される stdbool.h 内のいくつかの前処理ディレクティブ。
#else /* __cplusplus */
/* Supporting <stdbool.h> in C++ is a GCC extension. */
#define _Bool bool
#define bool bool
#define false false
#define true true
#endif /* __cplusplus */
プログラマーがこれらの前処理ディレクティブを作成した理由がわかりません。それらは役に立たず、交換は時間を無駄にします。これが無限再帰を引き起こさないことを私は知っています。無限再帰を回避するには? C標準の関連条項は何ですか?