0

按照这个链接

我做了:

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,
4

1 回答 1

2

是的,另一个struct对象或另一个变量的内容永远不会被视为可以在static对象的初始化程序中使用的常量表达式。

但是您的第一次初始化也是虚假的。可能你的意思是

static const struct attribute * const attrs1= &foo_attribute.attr;

因此,您对第二个的初始化将类似于

static const struct attribute_group attr_group = {
       .attrs = &foo_attribute.attr,
};
于 2012-08-26T14:26:18.210 回答