0
在linux中,我使用size命令得到了以下信息,用於示例C++程序。目標文件和可執行文件之間各種字段大小的差異
text data bss dec hex filename
1908 304 152 2364 93c test
346 4 1 351 15f test.o
我已閱讀的輸出是大小;文本是實際的代碼,bss包含未初始化的全局變量以及作爲已初始化和未初始化段的添加的數據。我的問題是爲什麼目標文件和可執行文件中的大小不同,特別是在文本中,因爲源代碼在內存中很常見?如果沒有全局變量,爲什麼會顯示bss的大小?
的示例代碼文件中包含有如下:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!" << endl ;
return 0;
}
謝謝!
謝謝。這就是爲什麼它顯示全局變量的大小,即使沒有全局變量?由於編譯器/鏈接器插入的信息? – Izza 2012-02-29 04:53:18
是的。您應該嘗試反編譯代碼以獲得更好的想法。值得注意的是,你將擁有一個「cout」和一個「cin」全局... – 2012-02-29 04:59:35