_t (アンダースコア-t) が続く型は何を表しますか? 質問する

_t (アンダースコア-t) が続く型は何を表しますか? 質問する

これは簡単な質問のように思えますが、Stack Overflow検索やGoogleで検索しても見つかりません。typeの後に続くaは何を_t意味しますか?

int_t anInt;

ハードウェアを密接に扱うことを目的とした C コードでこれをよく見かけますが、これらが関連していると思わざるを得ません。

ベストアンサー1

Douglas Mayle が指摘したように、 は基本的に型名を表します。したがって、変数名や関数名を ' _t' で終わらせるのは、混乱を招く可能性があるためお勧めできません。 の他にsize_t、C89 標準ではwchar_toff_t、などが定義されています。他にも私が忘れているものがあるかもしれません。C99 標準では、 、、、、など、ptrdiff_t多くの追加型が定義されています。これらの新しい型は で正式に定義されていますが、ほとんどの場合は(標準 C ヘッダーでは珍しく) を含む を使用します。また、 はおよびで使用するマクロも定義します。uintptr_tintmax_tint8_tuint_least16_tuint_fast32_t<stdint.h><inttypes.h><stdint.h><inttypes.h>printf()scanf()

Matt Curtis が指摘したように、コンパイラにとってサフィックスに意味はなく、人間向けの規則です。

しかし、次の点にも留意する必要があります。POSIXは、' ' で終わる追加の型名を多数定義し_t、実装用に接尾辞を予約しています。つまり、POSIX 関連のシステムで作業している場合、この規則に従って独自の型名を定義するのは賢明ではありません。私が作業しているシステムでは、この規則に従っています (20 年以上)。私たちが定義したのと同じ名前の型がシステムによって定義されることにより、私たちは頻繁につまずいてしまいます。

おすすめ記事