こんにちは。初歩的すぎる質問なんですが教えてください。
INTの取りうる数値は4バイトでいいんですか???
なんか参考書によっては「INTの範囲は「-32768~32767」だ」などと書いてあるんですが・・・
VC++のヘルプでは「-2億~+2億」とか書いてあるんで・・・実際VCでもその値の範囲ですし・・・
それともこれはVC特有の仕様?ボーランドでは違うとか???
いったいどっちなんですか???
INTについて
Re:INTについて
> INTの取りうる数値は4バイトでいいんですか???
小文字のint型のことですか?そのように仮定します。
int型が何バイトの領域を占めるかは
sizeof(short) <= sizeof(int) <= sizeof(long)
という決まりがあります。
ある処理系ではshort型と同じ領域を占めるかもしれませんし、
別の処理系ではlong型と同じ領域を占めるかもしれません。
sizeof(int)を2とか4に決めつけるようなコードを書くとまずい、
ということになります。
小文字のint型のことですか?そのように仮定します。
int型が何バイトの領域を占めるかは
sizeof(short) <= sizeof(int) <= sizeof(long)
という決まりがあります。
ある処理系ではshort型と同じ領域を占めるかもしれませんし、
別の処理系ではlong型と同じ領域を占めるかもしれません。
sizeof(int)を2とか4に決めつけるようなコードを書くとまずい、
ということになります。
Re:INTについて
> ・・・では、たとえば関数で「0~100000程度の引数」を使いたい場合は
どの処理系でも動かしたい場合は、引数の型をlongにしておけば
間違いないと思います。
sizeof(int)が2であるような処理系(例:LSI C-86)では
絶対に動かさないことがわかっていれば、int型でもよいでしょう。
どの処理系でも動かしたい場合は、引数の型をlongにしておけば
間違いないと思います。
sizeof(int)が2であるような処理系(例:LSI C-86)では
絶対に動かさないことがわかっていれば、int型でもよいでしょう。
Re:INTについて
>では大方4バイトと思って大丈夫なんですね。2バイトは例外的だということで・・・
あまりに古いコンパイラ、及び特殊な環境で実行されることを想定して作成されたコンパイラでなければ。
という条件が正しいですね。
あまりに古いコンパイラ、及び特殊な環境で実行されることを想定して作成されたコンパイラでなければ。
という条件が正しいですね。