计算机内部是如何避免返回值的?为什么能返回局部变量的值

计算机内部是如何处理返回值的?为什么能返回局部变量的值?
返回值的问题:
代码如下:
int funA(int c,int e)
{
return c+e;
}

int *funB(int a,int b)
{
int c=(a+b);
return &c;
}
我懂了funB不能返回局部变量的地址(因为c是存在栈上的,会被消去);
我不懂funA为什么能返回值呢?funA的return 究竟干了啥事儿啊?计算机内部是怎么处理的?

------解决方案--------------------
调试的有时候,看下反汇编代码。
------解决方案--------------------
参考:
关于函数返回值的几种情况

应该可解决楼主的困扰