gpt4 book ai didi

c - 为什么我的代码会出现 `Structure-return value does not match function type` 编译错误?

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:30 24 4
gpt4 key购买 nike

我的代码是:

typedef struct t
{
uint8 a[100];

}t;

t tt; //object of the struct
f(&tt); //some file calling the func

//function body in some file
uint8 *f(const struct t *ptr)
{
return ptr->a;
}

当我尝试构建时出现错误:

Return value type does not match the function type.

我错过了什么吗?

最佳答案

您需要使用类型的名称,您的代码中的任何地方都没有定义struct t 类型,所以

uint8 *f(t *const tt);

应该是函数签名,当然我想你在你的真实代码中使用了有意义的名字。

另外,请注意,我没有将指针设为 const,因为如果您返回指向结构的 const 指针的非 const 指针,则可能会发生未定义的行为,替代方案当然是

const uint8 *f(const t *const tt);

第二个 const,只是防止意外重新分配 tt

关于c - 为什么我的代码会出现 `Structure-return value does not match function type` 编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45633473/

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