Я получил следующую информацию, используя команду size в linux для примера программы на 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;
}
Спасибо!