Инициализация Const Struct с другими экземплярами Const Struct
Мне любопытно, почему следующий фрагмент кода не компилируется:
typedef struct Foo {
int a;
int b;
} Foo;
static const Foo FooZero = { 0, 0 };
typedef struct Bar {
Foo foo;
int c;
} Bar;
static const Bar BarZero = { FooZero, 0 };
Жалуется на использованиеFooZero
, основываясь на этомFooZero
не являетсяCompile-Time Constant
Но не так ли? Что я здесь не понимаю?
Очевидно, я могу просто заменить использованиеFooZero
в инициализаторе с{ 0, 0 }
- моя цель при задании вопроса не в том, как обойти проблему, - я пытаюсь понять причину, почемуFooZero
на самом деле не является константой времени компиляции.
Спасибо