初始化元素不是常数 – 如何解决错误?

点击此链接

我做了:

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