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