相关疑难解决方法(0)

使用其他Const Struct实例初始化Const Struct

我很好奇为什么下面的代码片段无法编译:

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不是,实际上是编译时常量.

谢谢

c struct initialization

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

c ×1

initialization ×1

struct ×1