2016-07-28 27 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的值,則使用之前的值。

相關問題