错误:'c'的存储大小未知

时间:2015-04-09 23:38:19

标签: c struct adt

我得到"错误:存储大小' c'不知道"当我尝试创建变量" c"我的结构名为" struct car"

以下是代码:

teste.h

#ifndef TESTE_H_INCLUDED
#define TESTE_H_INCLUDED

typedef struct car Car;

#endif // TESTE_H_INCLUDED 

teste.c

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

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

}; 

main.c

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

我无法弄清楚为什么我会收到这个错误...我敢打赌这是愚蠢的......有人能帮帮我吗?

1 个答案:

答案 0 :(得分:3)

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

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