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

3 c arrays struct initialization

我有这样的结构:

typedef struct
{
   int a;
   int b;
   int c;
   int d;
} Hello;
Run Code Online (Sandbox Code Playgroud)

然后我以这种方式宣布它:

Hello hello[6] = {};
Run Code Online (Sandbox Code Playgroud)

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

R..*_*R.. 7

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


Joh*_*ode 6

Hello hello[6] = {{0}};
Run Code Online (Sandbox Code Playgroud)

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


Rah*_*thi 5

尝试这样的事情:-

  Hello hello[6] = {{0}};
Run Code Online (Sandbox Code Playgroud)

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