dポイントプレゼントキャンペーン実施中!

C言語の学習をしております初心者です。

型のサイズについてですが、int型のサイズは処理系に依存する、
ということをよく聞きますが、この「処理系」というのは
そのアプリケーションを動作させるマシンに搭載されている"CPU"を
指しているのでしょうか? それとも"OS"を指しているのでしょうか?

A 回答 (4件)

既にあるように、同じOSやCPUのマシンでも、intサイズが違うコンパイラはあります。



処理系定義の原文は、implementation-definedです。
訳文だと分かりにくいですが、つまり「言語仕様に対する"実装(implementation)"」が決めることであって、
ここでいう処理系というのは、一般にコンパイラ(と標準ライブラリ)を指します。
implementation-definedを決定するのは、コンパイラ(や標準ライブラリ)の作者です。
(逆に言うと、作者はこれらを決めなければいけません)

まぁ、intサイズの場合、execution environmentに依存するので、
*コンパイラの作者* が、対応するOSやらCPUやらを考慮して決定すると思いますので、
たいていの場合は同じCPU、OS用のコンパイラは同じような値になりますが。
    • good
    • 0
この回答へのお礼

非常に参考になりました。
ありがとうございます!!

お礼日時:2008/07/24 23:12

C言語でいう「処理系」は、大きく分けて「翻訳処理系」と「実行処理系」に分けられます。

「翻訳処理系」はいわゆるコンパイラのことですし、「実行処理系」はプラットフォーム(CPUやOSなど)のことです。
一般に「処理系」という場合はこれら両方の総称です。
たとえば、「処理系はGCCです」といっても、それはコンパイラの名前ですので、ターゲットが分かりません。GCCはWindowsやLinuxなどのほか、組込み機器でも使用されるからです。
    • good
    • 0
この回答へのお礼

「処理系」にも分類があるんですね。
参考になりました。ありがとうございます。

お礼日時:2008/07/24 23:15

処理系はコンパイラを指す。


同じCPU、同じOSでもコンパイラが異なればintサイズが変わることはある。また同じコンパイラでも設定により変わることがある。
    • good
    • 0
この回答へのお礼

了解しました。ありがとうございます!!

お礼日時:2008/07/24 23:16

処理系の「系」は、



goo辞書 - 系
http://dictionary.goo.ne.jp/search.php?MT=%B7%CF …

| (1)ある関係のもとにつながった統一体。体系。
| (4)〔system〕物理・化学・生物などの分野で、一定の相互作用や相互連関のもとにある、もしくはあると想定されるものから成る全体。力学系・生態系・神経系・開放系など。

CPUもOSも含めたシステムの全体を指しますので、どちらかという事ではないです。
一般的には、概ねCPUを指す場合が多いですが、同じCPUでOSなりビルド環境なりを変更すれば、int型のサイズが違うって環境を作り出せなくは無いかと。

CPUの中での、いわゆるレジスタなんかのサイズは決まっている場合が多いですので、小さいint型のサイズを定義した場合には、レジスタの一部のみしか使ってないような事にもなるかも知れませんが…。
    • good
    • 0
この回答へのお礼

なるほどですね。ありがとうございます!!

お礼日時:2008/07/24 23:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!