0

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

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

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"

真的为这件事难住了。在此先感谢您的帮助。

4

1 回答 1

3

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

extern MyRecord parseNextRecord();
于 2012-10-30T17:52:31.450 回答