错误:数组类型具有不完整的元素类型
问题描述:
这里已经有一些这些线程,但它们中没有一个真正回答我的问题。 在我的头,我有:错误:数组类型具有不完整的元素类型
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}
};
编译这将导致在标题中错误。我不允许以这种方式创建一个数组吗?如果没有,是否有一个简短的版本,比创建后初始化每个结构?
答
使用
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
的类型别名。
谢谢,这样做! – wiseveri 2013-05-05 16:29:38