错误:数组类型具有不完整的元素类型

时间:2013-05-05 16:26:01

标签: c gcc compiler-errors

这里已经有一些线程,但它们都没有真正解决我的问题。 在我的标题中,我有:

 struct table_val  
 {  
    char res;  
    char carry;  
 };  
 typedef struct table_val TABLE_VAL;

在我的源文件中,我尝试创建这个结构的静态数组:

struct TABLE_VAL add_table[] = {
{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0},
{1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {0, 1},
{2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {0, 1}, {1, 1},
{3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {0, 1}, {1, 1}, {2, 1},
{4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {0, 1}, {1, 1}, {2, 1}, {3, 1},
{5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1},
{6, 0}, {7, 0}, {8, 0}, {9, 0}, {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1},
{7, 0}, {8, 0}, {9, 0}, {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1},
{8, 0}, {9, 0}, {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1},
{9, 0}, {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}
};

编译这会导致标题中的错误。我不允许以这种方式创建数组吗?如果没有,是否有一个简短版本,而不是在创建后初始化每个结构?

1 个答案:

答案 0 :(得分:4)

使用

TABLE_VAL add_table[]

struct table_val add_table[]

而不是

struct TABLE_VAL add_table[]

当你这样做时:

typedef struct table_val TABLE_VAL;

您正在为类型TABLE_VAL创建名为struct table_val的类型别名。