返回C语言的局部变量
马老师好,各位好!按照C语言的规范,在函数内部声明的局部变量在函数返回就销毁了,那么我返回的是函数的局部变量,这样可靠吗?谢谢!
unsigned char Test_function(void)
{
unsigned char a;
a=100;
return a;
}
这样是否可靠!有点模糊,请讲解! C语言通过特定的寄存器来传递返回值.
return a; 就是把a的值复制到那个特定的寄存器里面.
当然,事实上编译器都很聪明,直接把a分配到那个寄存器了,并不用复制这个动作.名曰:优化. 在你返回a的时候,函数还没有结束返回,所以变量也不会被销毁,可靠地
页:
[1]