size_tはC++標準またはC標準のみですか?
size_tを定義する「/usr/include」ツリーにCヘッダーが見つかりません。
それがCstdにない場合、GCCは物事を機能させるために魔法をかけているだけですか?
ありがとう、チェンツ
size_t
<stddef.h>
との両方で定義されています<stdlib.h>
C99ドラフトから:
7.17一般的な定義<stddef.h>
次のタイプとマクロは、標準ヘッダーで定義されています<stddef.h>
。それぞれの副次句に記載されているように、一部は他のヘッダーでも定義されています。
タイプは[ -snip- ]です
size_t
これは、sizeof
演算子の結果の符号なし整数型です。[-スニップ-]
size_tはC標準ライブラリからのものです
それはで宣言されています
#include <stddef.h> //For C
#include <cstddef> //For C++
$grep -R -P "typedef.*\s+size_t;" /usr/include/ 2> /dev/null
size_tを定義するファイルのリストが表示されます
size_tは、 Cの場合はstdlib.h(C ++の場合はcstdlib.h)にあります。
これは、ansicのstring.hで定義されています。