【发布时间】:2012-06-12 16:54:06
【问题描述】:
我有下面的代码。我在构建它时收到“警告:初始化器 [-Wmissing-braces] 周围缺少大括号”警告。
struct routing {
int hop_distance;
char timeinfo[13];
char sender_ID[16];
char gateway[16];
};
struct routing user_list[40] = { [0]={0,0,0,0}};
我想我是因为 char 初始化而收到警告,我应该如何初始化它?
struct routing user_list[40] = { [0]={0,{0},{0},{0}}};
或
struct routing user_list[40] = { [0]={0,'\0','\0','\0'}};
还是其他方式?
【问题讨论】:
-
memset(&user_list, 0, 40 * sizeof(routing));
-
请注意,使用
struct routing user_list[40] = {{0}};可以缩短相同的时间。任何没有显式初始化器的字段和数组元素都将被初始化为静态对象,并将其初始化为适当的 0 值。