サンプルのc++プログラムについて、Linuxでsizeコマンドを使用して次の情報を取得しました。
text data bss dec hex filename
1908 304 152 2364 93c test
346 4 1 351 15f test.o
出力はサイズであることを読みました。textは実際のコードであり、bssには初期化されていないグローバル変数が含まれ、データは初期化されたセグメントと初期化されていないセグメントの両方の追加として含まれます。私の質問は、ソースコードがメモリ内で一般的であるため、オブジェクトファイルと実行可能ファイル、特にテキストでサイズが異なるのはなぜですか?グローバル変数がない場合、bssのサイズが表示されるのはなぜですか?
サンプルコードファイルには以下が含まれます。
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!" << endl ;
return 0;
}
ありがとう!