点击此链接
我做了:
static const struct attribute const *attrs1= { &foo_attribute.attr, NULL, }; static const struct attribute_group const attr_group = { .attrs = attrs1, };
但是得到这些错误:
error: initializer element is not constant error: (near initialization for 'attr_group.attrs')
发现这个解决方案,但不明白如何解决它…
编辑:该行触发了错误:
.attrs = attrs1,
是的,另一个struct
对象或另一个变量的内容永远不会被视为可以在static
对象的初始化器中使用的常量表达式。
但是你的第一次初始化也是假的。 可能你的意思
static const struct attribute * const attrs1= &foo_attribute.attr;
所以你的第二个初始化会读到类似的东西
static const struct attribute_group attr_group = { .attrs = &foo_attribute.attr, };
以上就是c/c++开发分享初始化元素不是常数 – 如何解决错误?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/522302.html