我有以下代码:
#include <iostream>
struct T
{
int a, b, c;
};
int main()
{
T t = {0};
std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}
Run Code Online (Sandbox Code Playgroud)
输出:
0,0,0
Run Code Online (Sandbox Code Playgroud)
经过多年的代码在一个关键的生产环境中愉快地运行,提供一个重要的功能,项目的要求发生了变化,我需要输出1,1,1.
于是,我换{0}到{1}:
#include <iostream>
struct T
{
int a, b, c;
};
int main()
{
T t = {1};
std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}
Run Code Online (Sandbox Code Playgroud)
输出:
1,0,0
Run Code Online (Sandbox Code Playgroud)
我1,1,1反而期待了. …
我有这样的结构:
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禁止空初始化器括号,无论如何我认为我需要初始化它,如何以正确的方式做到这一点?