Inicializando Const Struct con otras instancias de Const Struct

Tengo curiosidad de por qué el siguiente fragmento de código no se compila:

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

Se queja del uso deFooZero, declarando queFooZero no es unCompile-Time Constant

Pero no es así? ¿Qué no estoy entendiendo aquí?

Obviamente, simplemente puedo reemplazar el uso deFooZero en el inicializador con{ 0, 0 } - mi propósito al hacer la pregunta no es cómo solucionar el problema - estoy tratando de entender la razón subyacente por la cualFooZero no es, de hecho, una constante de tiempo de compilación.

Gracia

Respuestas a la pregunta(2)

Su respuesta a la pregunta