当我尝试编译时会出现两个错误:
typedef struct {
int account_number;
float balance;
}accounts[2];
typedef struct{
char name[40];
accounts[2]
}client[3];
错误是:
prac5_2.c:16:8: error: expected identifier or ‘(’ before ‘[’ token
accounts[2]
prac5_2.c:18:2: error: expected ‘;’ before ‘client’
}client[3];
而且我不知道我要写什么才能正确
答案 0 :(得分:0)
第二个accounts[2]
中的行typedef
导致错误。
修改代码以匹配规范。例如,您可以删除该行或向该行添加变量名称和分号,以便了解错误。
typedef struct{
char name[40];
/* accounts[2] */
accounts hoge[2];
}client[3];
请注意,您的代码将accounts
声明为具有account_number
和balance
的结构的2元素数组的类型。 accounts hoge[2];
将是结构的2x2数组。像这样,client
将是一个3元素数组的类型。
如果你只想创建结构类型,而不是结构数组,你可以像这样写:
typedef struct {
int account_number;
float balance;
}accounts_t;
accounts_t accounts[2];
typedef struct{
char name[40];
accounts_t accounts[2];
}client_t;
client_t client[3];
请注意,在此代码中,结构accounts
中的client_t
是包含2个元素的1维数组,而不是2x2数组。