sizeof
演算子を使用size_t
してコードで使用している場合、必ず を含める必要がありますかstddef.h
? を含めていませんがstddef.h
、コードは MVS2008 と Borland C++ BuilderX の両方で警告なしにコンパイルされます。
どうもありがとう...
sizeof()
は、関数呼び出しのように見えますが、実際には演算子であり、言語コアの一部です。含める必要はありません。
size_t
stddef.h
、string.h
、stdlib.h
、およびのさまざまなヘッダーで定義されていstdio.h
ます。コードで使用するには、それらのいずれかを含めるだけで十分size_t
です。
いいえ、stddef.h を含むヘッダーを含めることができます
size_t の定義は、stdlib.hヘッダー ファイルをインクルードすることにより、コードの参照部分に提供されます。実際、ほとんどの実装では、このファイルで文字通り定義されていませんが、代わり に、たとえば GNU C コンパイラの標準ライブラリが行うように、ファイルstddef.hをサブインクルードします。アプリケーション コードに stddef.h を直接含めることは完全に有効であるため、このファイルの他のメンバーが不要または望まれない場合は、stdlib.h を置き換えることができます。
c では、 の定義は、 、、、、またはのいずれsize_t
かのヘッダーに由来します。stddef.h
stdio.h
stdlib.h
string.h
time.h
wchar.h
コンパイラの実装がこれを調整できる方法はいくつもありますが、使用できない方法の 1 つは、コンパイラにこれらのヘッダーの 1 つを背後に含めることであることに注意してください。これは、C コンパイラが許可されているものではありません。する必要があります (この制限は、独自の目的で標準ヘッダーを含めることが許可されている C++ では解除されました)。