我有一个返回struct(不是struct指针)的函数,但是当试图将返回值设置为同一类型的struct变量时,我得到“不兼容类型”
结构定义和函数实现如下所示:

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时出现“不兼容的类型”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13144642/

10-09 15:19