gpt4 book ai didi

c - 在函数的返回类型中定义结构

转载 作者:太空狗 更新时间:2023-10-29 15:24:44 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <string.h>

struct s
{
int data;
} fun()
{
static struct s ss;
ss.data = 20;
return ss;
}

int main()
{
struct s ss;
memcpy(&ss, &(fun()), sizeof(struct s));

printf("\n Data: :%d", ss.data);

return 0;
}

在上面的程序中,我试图定义一个提到返回类型的结构。 struct s 定义成功。

这是一个有效的用法吗?我从未见过这样的真实场景。

如何让这个程序运行??

我遇到这个编译器错误:

asd.c: In function ‘main’:
asd.c:21:15: error: lvalue required as unary ‘&’ operand

最佳答案

除了您的 memcpy 行之外的所有内容都是正确的(尽管有点难以阅读),并且编译器错误告诉您出了什么问题:您不能获取“临时”地址(即函数调用表达式的结果)。

然而,您可以而且应该以更自然的方式编写:

struct s ss = fun();

关于c - 在函数的返回类型中定义结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12243393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com