有人可以解释一下,如何实现从函数返回的结构变量。基本上,当从函数返回单个变量时,该值将被放入寄存器并返回。但在结构返回的情况下,这将如何工作。我假设结构将被复制到某个全局位置并返回指针。这将由编译器管理。我的理解正确吗?
这是我的示例程序
#include <stdio.h>
#include <stdlib.h>
typedef struct ss
{
char name[10];
int val;
} HELLO;
HELLO *ptr=NULL;
HELLO myfun()
{
HELLO hel = {"Salil", 20};
ptr = &hel;
return hel;
}
main()
{
HELLO hel1;
hel1 = myfun();
if ( ptr ) printf("The val = %s \n", ptr->name);
}
在这里,变量myfun
将如何返回?hel
返回时变量将保存在哪里?