c - 将 struct var 分配给函数的 retval 时为 "Incompatible types"

标签 c function types struct return

我有一个返回结构(不是结构指针)的函数,但是当试图将返回值设置为相同类型的结构变量时,我得到“不兼容的类型”。

这是结构定义和函数实现的样子:

typedef struct{
    int ssn;
    char FirstName[12];
    char LastName[12];
    int income;
} MyRecord;

MyRecord parseNextRecord()
{
    MyRecord record;
    // parse and initialize
    return record;
}

这是我在我的主要功能中调用它:

MyRecord nextRecord;
nextRecord = parseNextRecord(); // "error: incompatible types in assignment"

真的被这个难住了。预先感谢您的帮助。

最佳答案

没有看到头文件,可能的原因是 main() 没有看到 parseNextRecord() 函数的声明,这导致编译器生成隐式它的声明,返回类型为 int。这将导致不兼容分配 错误,因为不可能将int 分配给MyRecord。解决方法是在头文件中加入声明:

extern MyRecord parseNextRecord();

关于c - 将 struct var 分配给函数的 retval 时为 "Incompatible types",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13144642/

相关文章:

c - 如何在不使用 C 中的内置函数和循环的情况下打印字符串的反转?

c - 生成的依赖项与生成的文件

c - 在C中逐行写入文件

python - 代码与前面的行相同,但给出了错误?

reactjs - 使用 Typescript 将 React children prop 限制为每个给定类型的一个组件

c - 如何在 C 中减少 FILE* 指针

C++ 从 const 指针调用引用函数

python - 在 Python 中自省(introspection)给定函数的嵌套(本地)函数

c++ - 是否可以使用一个类作为自己方法的返回类型

haskell - 功能性 react 香蕉型困惑