У меня был следующий код:
#include <iostream>
struct T
{
int a, b, c;
};
int main()
{
T t = {0};
std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}
0,0,0
После многих лет работы этого кода в критической производственной среде, выполняющей жизненно важную функцию, требования проекта изменились, и мне нужен был результат 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';
}
1,0,0
Я ожидал 1,1,1 вместо этого.
Почему мои члены struct не все правильно инициализируются?