我很好奇为什么下面的代码片段无法编译:
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 };
Run Code Online (Sandbox Code Playgroud)
它抱怨使用FooZero,说明FooZero不是Compile-Time Constant
但不是吗?我在这里不理解什么?
显然,我可以简单地替换FooZero初始化程序中的用法{ 0, 0 }- 我的目的是提出问题不是如何解决问题 - 我试图理解其根本原因FooZero不是,实际上是编译时常量.
谢谢