yay*_*zis 3 c function return-value
之前我问过这个问题,我理解了很多东西.我怀疑这里发生了类似的事情,所以我想确定一下.我有这个简单的程序,他添加了2个数字.
#include <stdio.h>
int addFunc(int, int);
int main()
{
int sum;
int num1=1, num2=2;
sum = addFunc(num1,num2); //function call
printf("\nsum = %d\n\n", sum);
return 0;
}
int addFunc(int a,int b) //function declarator
{
int add;
add = a + b;
return add; //return statement of function.
}
Run Code Online (Sandbox Code Playgroud)
由于此函数不是函数中void的return语句.如果我省略了返回值,保存并编译它,我没有从编译器得到任何错误(也没有警告).当我运行它时,它给了我一个正确的结果.
但是程序如何知道返回哪个值,因为我没有指定任何值?C是否返回函数中最后计算的变量?
这只是巧合.
最有可能的是,值a+b存储在EAX寄存器中.通常,EAX寄存器也用于存储函数的返回值.
因为在main实际返回值中可用,EAX其中再次用于将值传递给printf函数.因此,您获得了预期的输出.