コードと実行可能ファイル間のC言語マッピング
.textセクションに格納されている機能コードは
.DATAセグメントに格納されたグローバル変数を初期化する
初期化されていないセクションは.bssに格納されたグローバル変数
プログラムタイプはファイルヘッダにマッピングされます
インタビューの質問:
スクリプトコードファイル、実行可能プログラムではありませんか?
なしとはい!ここではプロセスがあります!
実行可能プログラム- >オペレーティングシステムがロード- >プロセス生成
スクリプト-プロセスを生成します> - - >スクリプトインタプリタを>オペレーティングシステムが解釈されたスクリプトファイルを読み込み
-------------------------------------------------- ----------------------------------------------
実行可能プログラムと間のメモリマッピング
スタックセグメントは、正式な存在の後に実行されている、それはプログラムを実行するための基礎です。
#スタティックメモリ
.bssのストレージ初期化されていないグローバルおよび静的変数は、
グローバル変数および静的変数を初期化して記憶.DATA
実行可能コードの本体に格納されている機能プログラムの.text
#読み取り専用メモリ領域
の定数値は、このような文字列定数として、プログラムを格納し.rodataの
スタック領域内のローカル変数
のための動的ヒープ領域
.textセクションに格納された実行可能なコード
-------------------------------------------------- ----------------------------------------------
インタビューの質問:
グローバル変数と静的変数、なぜ初期化され、初期化されていない別のセクションに保存されていますか?
アイテム課金
連続したメモリ空間記憶素子のアレイ内の
アレイ要素の数が表示されるか、または暗黙的に指定することができる
例:
INT [ 5 ] = { 1、2 } INT = [] B { 1、2 }