2012-08-26 72 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, 
}; 
相關問題