Inicializando o Const Struct com outras instâncias do Const Struct

Estou curioso para saber por que o seguinte snippet de código não é compilado:

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 };

Reclama do uso deFooZero, declarando issoFooZero não é umCompile-Time Constant

Mas não é? O que não estou entendendo aqui?

Obviamente, eu posso simplesmente substituir o uso deFooZero no inicializador com{ 0, 0 } - meu objetivo ao fazer a pergunta não é como solucionar o problema - estou tentando entender o motivo subjacenteFooZero não é, de fato, uma constante em tempo de compilaçã

Obrigad

questionAnswers(2)

yourAnswerToTheQuestion