#コンパイル モードとは何ですか?
コンパイルモードとは、プログラムコードやデータをメモリ上にどのように配置し、スタックを確保し、占有メモリサイズやアクセス方法を確認するかを指します。コンパイラは、事前に選択されたメモリ モードに従ってプログラムをコンパイルし、編成します。 C 言語には、Tiny、Small、Medium、Compact、Large ) および Giant モード (Huge) の 6 つのコンパイル モードが用意されています。ユーザーは独自のプログラムのサイズとニーズに応じて選択できます。C 言語コンパイル モード - マイクロ モード (Tiny) - ポインタ付近
マイクロ モードでは、プログラム内のデータとコードは同じセクションに配置されます。つまり、64KB を超えません。マイクロ モードでは、コード セグメント、スタック セグメント、データ セグメントのセグメント アドレスはすべて同じです。つまり、CS=DS=SS=ES になります。C 言語コンパイル モード - スモール モード (Small)
スモール モードでは、プログラム内のコードが 64KB のコード セグメントに配置され、データが配置されます。データセグメント内の 64KB にあります。スモール モードでは、スタック セグメント、追加データ セグメント、およびデータ セグメントがすべて同じアドレスを指します。これらは 1 つに結合されます (つまり、DS=SS=ES)。ポインタはすべて近くにあります。一般に、プログラムはスモール モードでコンパイルされます。 。C 言語コンパイル モード - 中モード (中)
中モードでは、すべてのデータが 64KB データ セグメントに配置されるため、データ セグメントで Near が使用されます。コードの量は 64KB を超える可能性がある (1MB まで許容される) ため、異なるコード セグメント (遠いリモート ポインター) で使用できます。異なるソース ファイルのコード モジュールは、異なるコード セクションに配置されます。C 言語コンパイル モード - コンパクト モード (Compact)
コンパクト モードでは、データ量が 64KB を超える場合、複数のデータ セグメントに配置できます。データセグメント 内部のポインタは (far) です。コード量は 64KB を超えず、1 セグメント内にあるため、コード セグメント内のポインタは近くにあります。ただし、このモードでも静的データは 64KB を超えることができず、ヒープは Far ポインターを使用してアクセスします。コード、静的データ、スタック、ヒープにはそれぞれ独自のセグメントがあります。遠い杭だけがあり、近くの杭はありません。C 言語コンパイル モード - ラージ モード (ラージ)
ラージ モードでは、コードとデータの両方で far ポインターが使用され、両方とも 1MB に達する可能性があります。静的データ、スタック、ヒープはコンパクト モードと同じで、コードはミディアム モードと同じです。静的データはコンパクト モードと同じままで、64KB を超えることはできません。C 言語コンパイル モード - ヒュージ モード (ヒュージ)
ヒュージ モードでは、コード セグメントとデータ セグメントの両方で far ポインタが使用され、コードは次のように分散されます。異なるコード セグメント、データも異なるデータ セグメントに分散され、異なるソース プログラムから取得され、大きなスタックは 1 つだけです。また、静的データのサイズは 64KB を超えることができます。 推奨チュートリアル:以上がC言語とはどのようなコンパイル言語ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。