を含むいくつかのコードをテストしたところ、またはterm.h
などの通常の識別子を使用していくつかの奇妙なエラーが発生しました。これは、このヘッダーが多くのマクロを定義しているという事実に由来します。ここではいくつかの例を示します。tab
columns
/* from term.h */
#define columns CUR Numbers[0]
#define lines CUR Numbers[2]
#define bell CUR Strings[1]
#define insert_line CUR Strings[53]
#define tab CUR Strings[134]
ただし、これらのマクロ定数に関するドキュメントは見つかりませんでした。TERMINAL
データ構造の一部のメンバーにアクセスするためのショートカットのようです。もちろん、解決策は#undef
ソース コードで使用されるすべての識別子にあります。しかし、それは非常に制限的です。
だから私の質問は: の識別子にプレフィックスを付けないのはなぜterm.h
ですか?
実際のソース コードではローカル変数として使用されることが多いため、理解不能なエラーが発生します。