トップページprog
14コメント3KB

size_t

■ このスレッドは過去ログ倉庫に格納されています
0001千鳥NGNG
C/C++ の size_t の最大値と最小値はどうやって
求めたら良いでしょうか?
ヘッダファイルにそれらしい定義が見つからなくて・・。
低レベルの質問で申し訳ないですが
プログラマの皆様、どうかご助言よろしくお願いいたします。
0002jsk家NGNG
今家にコンパイラ、入ってないんだけど、あるはずじゃない?
includeディレクトリの中のファイルを検索してみた?(んだよねぇ)
そもそも、最大値と最小値なんてあったっけ?
とういうわけでわかりませねん(笑)。
0003名無しさんNGNG
limits.hに書いてないんだっけ?
0004名無しさんNGNG
手元で分かるので見てみた。

ソラリスの場合
limits.h:
#if defined(_LP64) || defined(_I32LPx)
typedef unsigned long size_t; /* size of something in bytes */
#else
typedef unsigned int size_t; /* (historical version) */
#endif

VC++の場合
stdio.h:
typedef unsigned int size_t;

BCBの場合
_stddef.h:
typedef unsigned int size_t;

通常は0xFFFFFFFFでいいみたい。
0005千鳥NGNG
limits.hにはsize_tの最大値、最小値が見つからないんですー。
size_tの型も解りません・・。(^-^;)
0xFFFFFFFF にしておいて処理系に応じて変えたほうが
良さそうですね?皆さん、ありがとうございましたー
0006>5NGNG
ないと言うなら無いんだろうけど
linuxのlimits.hにはあったよ
デファインの名前はこんな感じ
signed char: SCHAR_MIN@`SCHAR_MAX
unsigned char: UCHAR_MAX
char: CHAR_MIN@`CHAR_MAX
short: SHRT_MIN@`SHRT_MAX
unsigned short: USHRT_MAX
int: INT_MIN@`INT_MAX
unsigned int: UINT_MAX
long: LONG_MIN@`LONG_MAX
unsigned long: ULONG_MAX
00076NGNG
↑unsigned int とunsigned long だけでよかった
0008名無しさんNGNG
const size_t max_size_t = ~0;
0009> 6NGNG
で、どれが、size_tなの?
00106NGNG
済みません unsigned long(または unsigned int)
が size_t だとたかをくくってよく調べずに書いたんすけど
不安に名って調べてみたら
typedef _IO_honyarara size_t
typedef *(*_IO_alloc_sizetype) __P _IO_honyarara
のようになってて、よくわからないので
あきらめて寝ました(2重に済みませんうろ覚えです)
こんな風だったら確かにわかりません。わかる方教えてください
0011>8NGNG
size_t が、unsigned 〜 とは限らないので、NG
0012jskNGNG
C++ Builderより
「標準 ANSI C の実行として Borland では,size_t 型は unsigned です。」
だって。参考になるかな?
00138NGNG
(size_t)((size_t)~0 < 0 ? 1 << CHAR_BIT * sizeof(size_t) - 1 : ~0)
とりあえず、こんなとこで、ど〜だ
00148NGNG
13は間違いです。すみません。
size_t、sizeofの結果は unsigned 〜らしいですね。すみません。
■ このスレッドは過去ログ倉庫に格納されています