【发布时间】:2008-12-12 13:16:14
【问题描述】:
我有一个结构,其中包含另一个结构的数组,它看起来像这样:
typedef struct bla Bla;
typedef struct point Point;
struct point
{
int x, y;
};
struct bla
{
int another_var;
Point *foo;
};
我现在想在全局范围内初始化它们。它们旨在作为模块的描述。我尝试使用 c99 复合文字来做到这一点,但编译器 (gcc) 不喜欢它:
Bla test =
{
0, (Point[]) {(Point){1, 2}, (Point){3, 4}}
};
我收到以下错误:
错误:初始化元素不是常量 错误:(接近初始化“测试”)由于我不需要修改它,我可以根据需要在其中添加尽可能多的“const”。有没有办法编译它?
【问题讨论】:
标签: c compound-literals