错误:“c”的存储大小未知

Qui*_*k19 3 c struct adt

当我尝试创建名为“struct car”的结构的变量“c”时,出现“错误:‘c’的存储大小未知”

这是代码:

测试文件

#ifndef TESTE_H_INCLUDED
#define TESTE_H_INCLUDED

typedef struct car Car;

#endif // TESTE_H_INCLUDED 
Run Code Online (Sandbox Code Playgroud)

测试程序

#include <stdio.h>
#include <stdlib.h>
#include "teste.h"

struct car{
    char name[20];
    char model[20];

}; 
Run Code Online (Sandbox Code Playgroud)

主程序

#include <stdio.h>
#include <stdlib.h>
#include "teste.h"
int main()
{
    Car c;
    return 0;
} 
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我会收到这个错误...我敢打赌这是愚蠢的事情...有人可以帮助我吗?

小智 5

头文件中的 Car 结构只是一个前向声明,当它包含在 main.c 中时,它只知道前向声明,但不知道它是如何定义的(或者在这种情况下,结构的大小是多少) 。在头文件中定义您的结构。

struct car {
    char name[20];
    char model[20];
}; 
Run Code Online (Sandbox Code Playgroud)