为什么使用以下代码时会得到以下输出"-858993460":
#include<stdio.h>
int aNumber(void);
int main()
{
printf("%d", aNumber());
return 0;
}
int aNumber(void) {
int x = 1;
}
我只是好奇。我知道我需要使用"return"在我的"printf"上获得实际的int 1
因为aNumber
的返回值未定义。由于不返回值,因此会出现未定义的行为。不要指望它。在许多机器上,EAX
存储返回值。如果没有EAX
的值,则使用其以前的值。