C言語のメモリ、実行可能ファイル

 

コードと実行可能ファイル間のC言語マッピング

.textセクションに格納されている機能コードは
.DATAセグメントに格納されたグローバル変数を初期化する
初期化されていないセクションは.bssに格納されたグローバル変数
プログラムタイプはファイルヘッダにマッピングされます

 

インタビューの質問:
スクリプトコードファイル、実行可能プログラムではありませんか?

なしとはい!ここではプロセスがあります!
実行可能プログラム- >オペレーティングシステムがロード- >プロセス生成
スクリプト-プロセスを生成します> - - >スクリプトインタプリタを>オペレーティングシステムが解釈されたスクリプトファイルを読み込み

-------------------------------------------------- ----------------------------------------------
実行可能プログラムと間のメモリマッピング
スタックセグメントは、正式な存在の後に実行されている、それはプログラムを実行するための基礎です。


#スタティックメモリ
.bssのストレージ初期化されていないグローバルおよび静的変数は、
グローバル変数および静的変数を初期化して記憶.DATA
実行可能コードの本体に格納されている機能プログラムの.text


#読み取り専用メモリ領域
の定数値は、このような文字列定数として、プログラムを格納し.rodataの


スタック領域内のローカル変数
のための動的ヒープ領域
.textセクションに格納された実行可能なコード

-------------------------------------------------- ----------------------------------------------

インタビューの質問:
グローバル変数と静的変数、なぜ初期化され、初期化されていない別のセクションに保存されていますか?

アイテム課金

 

連続したメモリ空間記憶素子のアレイ内の
アレイ要素の数が表示されるか、または暗黙的に指定することができる
例:

INT [ 5 ] = { 12 }
 INT = [] B { 12 }

 

おすすめ

転載: www.cnblogs.com/sea-stream/p/10995005.html