gpt4 book ai didi

c - 在外部结构初始化中将内部结构初始化为常量

转载 作者:行者123 更新时间:2023-11-30 15:07:38 24 4
gpt4 key购买 nike

我在结构内部有一个结构,在初始化外部结构时,我想将内部结构初始化为 const。

typedef struct A {
uint16_t id;
}A;

typedef struct B {
A a;
uint16_t data;
}

我知道我可以在通过以下代码初始化外部结构时初始化内部结构:

B test = {
{
.id = 0x100
},
.data = 0
};

我知道我可以这样做:

const A aTest = {
.id = 0x100
};
B test = {
.a = aTest,
.data = 0

但是有没有办法让内部初始化直接恒定呢?

最佳答案

您需要将内部成员定义为const:

typedef struct B {
const A a;
uint16_t data;
} B;

然后你可以像这样初始化:

B test = {
{
.id = 0x100
},
.data = 0
};

虽然这会产生编译器错误:

test.a.id=1;

关于c - 在外部结构初始化中将内部结构初始化为常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38055018/

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