ISO C禁止在C中使用空的初始化程序括号

时间:2012-11-08 18:59:15

标签: c arrays struct initialization

我有这样的结构:

typedef struct
{
   int a;
   int b;
   int c;
   int d;
} Hello;

然后我以这种方式宣布:

Hello hello[6] = {};

然后我收到了这个警告:ISO C禁止空的初始化括号,无论如何我认为我需要初始化它,如何以正确的方式做到这一点?

3 个答案:

答案 0 :(得分:6)

这是无效的C. C中的通用零初始化器是{0},而不是{}

答案 1 :(得分:6)

Hello hello[6] = {{0}};

将每个结构的所有成员初始化为0.

答案 2 :(得分:3)

尝试这样的事情: -

  Hello hello[6] = {{0}};

这会将struct的所有成员初始化为0。