2015-07-08 3 views
0

Я добрая новичок в c, поэтому я написал эту простую программу. Я просто имею две переменные int.Раздел данных слишком большой или нет?

#include<stdio.h> 
#include<conio.h> 

int main(){ 

    int x = 3; 
    int y = 4; 
    printf("x = %d \n y = %d",x,y); 
    return 0; 
} 

Поэтому, когда я проанализировал его изображение EXE. я обнаружил, что раздел данных был 12 КБ, это нормально или есть что-то, что я не могу видеть, я имею в виду мой размер программы, включая заголовок PE, код и импорт, размеры 72 КБ. Размер моего SECOND.EXE

+0

извините за файлы заголовков :) –

+0

кроме раздела данных в вашей программе есть текстовая секция и BSS. –

+0

i измеренный текст + rdata + PE заголовок в отладчике иммунитета это было 72 КБ, но данные показывают дополнительные 12 КБ? –

ответ

1

Исходный файл компилятора - сгенерированный код из фактического исходного файла и не намного больше. Исполняемый файл был связан с другими объектными файлами и библиотеками, необходимыми для всех внешних функций и переменных, которые вам нужны. Это, конечно, делает исполняемый файл намного больше, поскольку он содержит гораздо больше кода. Он содержит другие вещи, которые необходимы для безупречной работы вашей программы.

+0

«Исходный файл компилятора ...» Что вы имеете в виду? Что такое _source file_? – Olaf

+0

Это ** не ** a_source file_! '.text',' .data', '.const' /' .rodata' и т. д. являются разделами в файле _object_! Что-то совсем другое. И 'PE header' - это нечто другое - структура заголовка. – Olaf

+0

Исходный файл компилятора означает файл объекта (xx.o) – udit043

Смежные вопросы