INTについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
try

INTについて

#1

投稿記事 by try » 18年前

こんにちは。初歩的すぎる質問なんですが教えてください。
INTの取りうる数値は4バイトでいいんですか???
なんか参考書によっては「INTの範囲は「-32768~32767」だ」などと書いてあるんですが・・・
VC++のヘルプでは「-2億~+2億」とか書いてあるんで・・・実際VCでもその値の範囲ですし・・・
それともこれはVC特有の仕様?ボーランドでは違うとか???
いったいどっちなんですか???

box

Re:INTについて

#2

投稿記事 by box » 18年前

> INTの取りうる数値は4バイトでいいんですか???

小文字のint型のことですか?そのように仮定します。
int型が何バイトの領域を占めるかは

sizeof(short) <= sizeof(int) <= sizeof(long)

という決まりがあります。
ある処理系ではshort型と同じ領域を占めるかもしれませんし、
別の処理系ではlong型と同じ領域を占めるかもしれません。

sizeof(int)を2とか4に決めつけるようなコードを書くとまずい、
ということになります。

try

Re:INTについて

#3

投稿記事 by try » 18年前

ご回答ありがとうございます。

・・・では、たとえば関数で「0~100000程度の引数」を使いたい場合は
どのように関数を定義したらいいんでしょうか・・・

box

Re:INTについて

#4

投稿記事 by box » 18年前

> ・・・では、たとえば関数で「0~100000程度の引数」を使いたい場合は

どの処理系でも動かしたい場合は、引数の型をlongにしておけば
間違いないと思います。

sizeof(int)が2であるような処理系(例:LSI C-86)では
絶対に動かさないことがわかっていれば、int型でもよいでしょう。

keichan

Re:INTについて

#5

投稿記事 by keichan » 18年前

移植性を考える必要がなく、VCまたはBorlandコンパイラを使用するのであれば
int または long で問題ありません。

try

Re:INTについて

#6

投稿記事 by try » 18年前

では大方4バイトと思って大丈夫なんですね。2バイトは例外的だということで・・・
ご回答ありがとうございました。

keichan

Re:INTについて

#7

投稿記事 by keichan » 18年前

>では大方4バイトと思って大丈夫なんですね。2バイトは例外的だということで・・・
あまりに古いコンパイラ、及び特殊な環境で実行されることを想定して作成されたコンパイラでなければ。
という条件が正しいですね。

閉鎖

“C言語何でも質問掲示板” へ戻る