初始化元素不是常数 – 如何解决错误?
点击此链接
我做了:
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, };