Посмотрите на следующий фрагмент кода:Auto переменная сохраняет значение по вызовы функций
void abc(void)
{
int a;
printf("%d\n", a);
}
void xyz(void)
{
int a = 44;
}
int main(void)
{
xyz();
abc();
}
Когда я скомпилировать и запустить программу, она показывает значение из 44. Я ожидал, что это отобразить другое значение мусора. Если я использую оптимизацию, результат будет таким, как ожидалось. Может ли кто-нибудь помочь мне разобраться в конкретной проблеме?
Благодаря
Проблема в том, что вы используете неинициализированную переменную. –