ここから本文です

プログラムの型の情報はどこに保存されているのですか?

mou********さん

2019/12/815:42:00

プログラムの型の情報はどこに保存されているのですか?

例えばchar型は8個の0と1から成って、256種類の情報を持てると思いますが、もし8ビット全てをchar型の中身のために使ってしまったら、それがchar型であるという情報はどこに保管されるのでしょうか?

閲覧数:
28
回答数:
3
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

あみやさん

2019/12/816:27:48

型の情報はプログラムにはどこにも保存はされていません。

例えば、アドレス1000に8bitのデータがあるとして、それを8bitのデータであると示す情報はどこにも無く
プログラムの中にある、アドレス1000から8bit分のデータを読む
といったコードの中に組み込まれた状態でのみ、そのデータが8bitである事が示されています。
プログラム的には、アドレス1000から始まる16bitを読めとか32bitを読めとか書く事もできます。

あくまで型情報というのは、プログラミング言語上において、
人間がデータを管理しやすくするためにつけられた架空の存在でしかありません。
マシン語レベルでは全てメモリ上のデータに過ぎず、型情報はもちろん、変数という概念すら存在しないのです。

質問した人からのコメント

2019/12/10 11:26:04

ご回答ありがとうございました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

n2q********さん

2019/12/816:54:28

たとえば Windows には VARIANT 構造体というものがあります。

https://docs.microsoft.com/en-us/windows/win32/api/oaidl/ns-oaidl-v...


【型の情報はどこに保存されているのですか?】

VARIANT 構造体の場合は vt というメンバの中に保存されています。


【それがchar型であるという情報はどこに保管されるのでしょうか?】

char 型の変数自身にそのような情報を持たせることは出来ませんから、それとは別の変数を用意して、その変数に型の情報を持たせる形となります。


《注意点》

既に皆様お答えの通り、型の情報は保存されないのが通常です。それだと困る場合に限り、それぞれの考えで型の情報を好きなように保存するわけですね。

プロフィール画像

カテゴリマスター

nan********さん

2019/12/815:51:53

そのような情報はどこにも持っていません。少なくとも実行形式になったものには。

charだintだというのはソースコード上の話だけです。
コンパイルされればソースコードに書かれた処理内容が機械語に置き換わり、どのアドレスにあるどれだけの長さのデータをどこに置くのか、ということに置き換わるだけです。

例えば「あなたの質問」という文章はローマ字で書くと「a na ta no shi tsu mo n」などとなり、元の「あなた」「の」「質問」というまとまりや意味合いが全く消えますが、順に発声していけば「あなたのしつもん」という音になるのとのちょっと似ています(本来ならイントネーション情報が必要ですが)。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる