2016-07-28 6 views
-2

Почему я получаю следующий выход «-858993460» при использовании следующего кода:Почему я получаю следующий результат «** - ** 858993460»

#include<stdio.h> 

int aNumber(void); 

int main() 
{ 
    printf("%d", aNumber());  
    return 0; 
} 

int aNumber(void) { 
    int x = 1; 
} 

Я просто любопытно. Я знаю, что нужно использовать «возвращение», чтобы получить фактические INT 1 на моем «Printf»

ответ

2

Поскольку возвращаемое значение aNumber не определенно. Поскольку вы не возвращаете значение, возникает неопределенное поведение. Не рассчитывайте на это. На многих машинах EAX хранит возвращаемое значение. Если у вас нет значения для EAX, используется предыдущее значение для него.

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