我有一个返回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/