我有一个返回结构(不是结构指针)的函数,但是当试图将返回值设置为相同类型的结构变量时,我得到“不兼容的类型”。
这是结构定义和函数实现的样子:
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/