2012-08-26 4 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 решение, но не понимал, как ее решить ...

EDIT: линия вызвало ошибку:

.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, 
}; 
Смежные вопросы