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