2016-07-28 13 views
-2

Warum ich die folgende Ausgabe „-858.993.460“, wenn mit dem folgenden Code erhalten:Warum erhalte ich die folgende Ausgabe „** - 858.993.460 **“

#include<stdio.h> 

int aNumber(void); 

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

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

Ich bin nur neugierig. Ich weiß, ich brauche „Rückkehr“ zu verwenden, um die tatsächlichen int 1 auf meinem „printf“

Antwort

2

zu bekommen, weil der Rückgabewert von aNumber nicht definiert ist. Da Sie keinen Wert zurückgeben, tritt ein undefiniertes Verhalten auf. Zählen Sie nicht darauf. Auf vielen Maschinen speichert EAX den Rückgabewert. Wenn Sie keinen Wert für EAX haben, wird der vorherige Wert dafür verwendet.

Verwandte Themen