【C言語】ポインタ(7)オブジェクト型について

どうも。gochaです。

今回は、オブジェクト型について説明します。

規格書には下記のように書かれています。索引を調べると、オブジェクト自体は 3.1.4 に、オブジェクト型は 6.2.5 に記載されているのが分かります。

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf#page=545

オブジェクトについて

3.14
object
region of data storage in the execution environment, the contents of which can represent values.


NOTE When referenced, an object may be interpreted as having a particular type; see 6.3.2.1.

参照:http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf#page=17

日本語訳は下記の感じでしょうか。

3.14
オブジェクト

(C言語の)実行環境におけるデータ保存領域の特定領域で、オブジェクトの中身は何かしらの”値”を示すことができる。

注意:オブジェクトが参照される際、オブジェクトは特定の型を有していると解釈されるかもしれない。詳細は6.3.2.1を参照のこと。

ちなみに、上記で使われている “値” というのはC言語において別途定義されています。

値とは特定の型を持って解釈されたときに正確に意味が分かる、オブジェクトの中身のこと。

なのですが、詳細は下記にまとめています。

凝縮および補足します。

オブジェクトというのは、Cプログラムが実行されているとき使用するデート保存領域(メモリとかキャッシュとかレジスタとか)に存在して、中身が値を示す可能性があるもの。(値を示さない可能性もある。)

6.3.2.1 も時間がある方は一読しても良いかもしれませんがここでは省略します。

オブジェクト型について

「6.2.5 Types」の中で下記のように説明されています。

object types (types that fully describe objects)

参照:http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf#page=45

日本語訳すると、

オブジェクト型、オブジェクトを十分に説明する型のこと

でしょうか。

今回はここまで。