Я спрашиваю себя, как вы могли бы улучшить код. Если возникла следующая проблема:
int i = 10;
int s = i * 12;
int main(){ }
Когда вы смотрите на код в формате PE, вы замечаете, что ни i, ни s не объявлены в сегменте .data, несмотря на то, что их значение могло иметь был предварительно рассчитан. Они инициализируются во время выполнения.
Здесь у меня есть пример другого кода, который имеет такое же явление. Значения также были объявлены, как в примере выше
Просмотр в отладчике перед передачей EntryPoint:
0133BF7C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0133BF8C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
После передачи EntryPoint:
0133BF7C E9 01 00 00 DF 02 00 00 64 00 00 00 00 00 00 00 é...ß...d.......
0133BF8C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Как мне объявить переменная с начальным значением в секции .data в C ++ для экономии драгоценного времени вычислений?
Или секция .data никогда не инициализируется чем-либо до начала выполнения?