2012-08-26 91 views
0

下面这个link初始化器元素不是常量 - 如何解决错误?

我所做的:

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') 

发现this解决方案,但不知道如何解决它...

编辑: 该行触发错误:

.attrs = attrs1, 
+0

哪行触发错误? – elyashiv

回答

2

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

但你的第一次初始化也是假的。也许你的意思

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

所以你的第二初始化会读像

static const struct attribute_group attr_group = { 
     .attrs = &foo_attribute.attr, 
}; 
相关问题