2013-05-05 147 views
0

这里已经有一些这些线程,但它们中没有一个真正回答我的问题。 在我的头,我有:错误:数组类型具有不完整的元素类型

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} 
}; 

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

回答

4

使用

TABLE_VAL add_table[] 

struct table_val add_table[] 

,而不是

struct TABLE_VAL add_table[] 

当你这样做:

typedef struct table_val TABLE_VAL; 

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

+0

谢谢,这样做! – wiseveri 2013-05-05 16:29:38

相关问题