尝试编译时出错

时间:2016-11-10 01:04:19

标签: c

当我尝试编译时会出现两个错误:

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

而且我不知道我要写什么才能正确

1 个答案:

答案 0 :(得分:0)

第二个accounts[2]中的行typedef导致错误。

修改代码以匹配规范。例如,您可以删除该行或向该行添加变量名称和分号,以便了解错误。

typedef struct{
    char name[40];
    /* accounts[2] */
    accounts hoge[2];
}client[3];

请注意,您的代码将accounts声明为具有account_numberbalance的结构的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数组。