函数返回Int尽管返回类型定义不同

Bra*_*enP 2 c struct

所以我在这里有点困惑.我正在开发一个更大的项目,但遇到了一些问题,所以我用一个简单的结构编写了一个小测试用例:

#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?我该如何解决?我只是对简单的事情视而不见?

Pau*_*l R 5

你错过了一个原型:

#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)