我的代码为:
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;
}
当我尝试构建时,我收到错误:
返回值类型与函数类型不匹配。
我错过了什么吗?
答案 0 :(得分:1)
您需要使用该类型的名称,代码中的任何位置都没有定义struct t
类型,所以
uint8 *f(t *const tt);
应该是函数签名,当然我想你在实际代码中使用了有意义的名字。
另外,请注意我没有创建指针const
,因为如果你返回一个指向结构的const指针的非const指针,那么可能会发生未定义的行为,当然替代
const uint8 *f(const t *const tt);
第二个const
,只是阻止意外重新分配tt
。