gpt4 book ai didi

c - 初始化 typedef 结构体的 typedef 字段

转载 作者:行者123 更新时间:2023-11-30 16:33:30 30 4
gpt4 key购买 nike

MachineState machine;
ControlSignals theControls = machine.control_signals; //Why is this giving an error?

Error: traceTemp.c:4:38: error: initializer element is not a compile-time constant. ControlSignals theControls = machine.control_signals;

为什么会报错?如何访问既是 typedef 又是 typedef 的字段?下面是我定义这两个 typedef 的方式。请让我知道如何解决它。谢谢!

typedef struct {
.
.
.
} ControlSignals;


typedef struct {
ControlSignals control_signals;
.
.
} MachineState;

最佳答案

当您在文件范围(即函数外部)初始化变量时,初始化程序必须是编译时常量,如错误消息所述。编译时常量意味着(宽松地说)数字常量、字符串常量或这些常量的组合。相反,您将其设置为另一个变量的值。

您需要使用常量值来初始化变量,或者稍后在程序中通过赋值来设置它。

关于c - 初始化 typedef 结构体的 typedef 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49724452/

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