は誰でもヘッダを掘削、C++のintデータ型であるかについてSTHを伝えることができるとは何か私が見つけることができるテキストコードと物理ストレージ内のタイプの間の連結は何/int型、基本データ型
typedef int INT;
RAMに?コンパイラはこのintが何であるか知っていなければなりません。コンパイラにはどこに説明されていますか?
は誰でもヘッダを掘削、C++のintデータ型であるかについてSTHを伝えることができるとは何か私が見つけることができるテキストコードと物理ストレージ内のタイプの間の連結は何/int型、基本データ型
typedef int INT;
RAMに?コンパイラはこのintが何であるか知っていなければなりません。コンパイラにはどこに説明されていますか?
int
は整数です。最も基本的なレベルでは、単純に数値として解釈される一連のバイトです。現代のプロセッサー(およびオペレーティングシステム)は、32ビットおよび64ビット(それぞれ4および8バイト)が最も一般的ですが、複数のサイズの整数をサポートしています。
ハードウェアで表現すると、これらは高電圧と低電圧に設定されたデータラインです。 32ビットパラレルデータバスは32ビットのデータラインを持ち、それぞれ1ビットを表します。数字100を表す場合は、2進表示(つまり1100100
)に変換して、3,6および7の行を高く、残りの部分を低く設定します。プロセッサーや他のマイクロコントローラーは、内部機能とプログラミングに基づいてこの信号を解釈することができます。
コンパイラにはint型の情報が含まれている必要がありますか?それは4バイトすなわち? – 4pie0
'int'型は、特定のOSの詳細に基づいてサイズを変更するという点でちょっと複雑です。固定サイズの32ビット整数が必要な場合は 'int32_t'を使用できます。エンディアン(ビットオーダー)に関連する問題もあります。これはWikipediaで読むことができます。複雑さの概要を知るためには、他のint-size質問についても見てください。 – Polynomial
typedef int INT
は、int
を定義しません。それは逆です:INT
はint
のように定義されています。 int
自体は、ソースファイルではなく、コンパイラの中で定義されています。
typedefはメモリにまったくマップされません。これは、ストレージの種類、サイズなどを記述するテキストです。メモリにマップされる変数の型です。
int
は、C++標準§3.9.1基本タイプに記述されています。実際のサイズは実装に依存します。基本型のサイズに関して、C++はC99を参照しています。 MIN_INT
およびMAX_INT
などの値が定義されており、<limits>
ヘッダー、特にstd::numeric_limits
にある機能が定義されている<climits>
ヘッダーを参照してください。これにより、プラットフォーム上のさまざまなタイプの範囲を判断する機能が提供されます。詳細はhereを参照してください。
あなたが言いたいtypedefは、INT
という記号を使ってint
を意味することを意味しています。
int
は基本的なC/C++タイプなので、これ以上深くすることはできません。
テキストコードのタイプと物理的なRAMの記憶 の間のリンクは何ですか?コンパイラが であるとすれば、int i =に伝えると終了することはできません。彼はこれが何であるか知っている必要があります int。
Windowsの場合(私は他のオペレーティングシステムでの経験はありません)、コンパイラは実行可能ファイルにコードをビルドします。実行可能ファイルには、データセクタとコードセクタの2つのメインセクタがあります。 int i
を宣言したとしましょう。コードがコンパイルされると、そのコードはメモリの場所に変換されます(例:0x0000004)。オペレーティングシステムが実行ファイル(Windowsでは.exeまたは.dll)を読み込むと、OSはアプリケーション用の仮想メモリを作成します。 (例えば、0x100000000)。したがって、int i
は物理メモリの0x100000004に配置されますが、アプリケーション仮想メモリの0x0000004に配置されます。事がどのように動作するかの
上記の説明は簡略化されているバージョンが
C++は、純粋にオブジェクト指向されていない、すべての定義された変数は、C++の用語では「オブジェクト」と呼ばれているが、(実際の事はより複雑になる可能性があります)。クラスのインスタンスではないタイプがあり、そのうちの1つであるint
があります。
int
は、符号付き整数として解釈される少なくとも16個の連続ビットの単なるセットです。実際のサイズと特定のビットパターンが整数にどのようにマッピングされるかは、主にコンパイラとプラットフォームに依存します。
googleのキーワードtypedef ... – ScarletAmaranth
'typedef'は、そのタイプの別名を作成します。だからあなたのソースコードのどこに 'int'を置くことができるのかを知っていれば、' INT'を使うことができます。 –
「sth」は誰ですか?なぜ彼は自分自身で質問できませんか? –