所以我在这里有点困惑.我正在开发一个更大的项目,但遇到了一些问题,所以我用一个简单的结构编写了一个小测试用例:
#include <stdio.h>
typedef struct{
int property1;
}test;
int main(){
test testing = getNumber();
printf("%d",testing.property1);
return 0;
}
test getNumber(){
test testing = {2};
return testing;
}
Run Code Online (Sandbox Code Playgroud)
我要做的就是从getNumber()返回的测试结构中读取一个属性.但是,编译器抱怨以下错误:
test.c(8):错误C2440:'初始化':无法从'int'转换为'test'
所以我的问题是:尽管我指定了一个测试返回类型,为什么这个函数试图返回一个int?我该如何解决?我只是对简单的事情视而不见?
你错过了一个原型:
#include <stdio.h>
typedef struct{
int property1;
}test;
test getNumber(void); // <<< missing prototype
int main(){
test testing = getNumber();
printf("%d",testing.property1);
return 0;
}
test getNumber(void){
test testing = {2};
return testing;
}
Run Code Online (Sandbox Code Playgroud)