gpt4 book ai didi

c - 嵌套结构/数组初始化

转载 作者:太空狗 更新时间:2023-10-29 15:03:15 25 4
gpt4 key购买 nike

我有一个包含另一个结构数组的结构,它看起来像这样:


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}}
};

我收到以下错误:

error: initializer element is not constanterror: (near initialization for 'test')

因为我不需要修改它,所以我可以根据需要在其中放入尽可能多的“const”。有办法编译吗?

最佳答案

您不需要为每个元素创建一个复合文字,只需创建一个复合文字数组即可:

Bla test =
{
0, (Point[]) {{1, 2}, {3, 4}}
};

确保使用 -std=c99 进行编译。

关于c - 嵌套结构/数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/362696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com