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

1 回答 1

4

采用

TABLE_VAL add_table[]

或者

struct table_val add_table[]

并不是

struct TABLE_VAL add_table[]

当你这样做时:

typedef struct table_val TABLE_VAL;

您正在创建一个以 type 命名的类型TABLE_VAL别名struct table_val

于 2013-05-05T16:27:25.853 回答