Элемент инициализатора не является постоянным - как решить ошибки?
По этой ссылке
Я сделал:
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,
1 ответ
Решение
Да другое struct
объект или содержимое другой переменной никогда не будет считаться константным выражением, которое можно использовать в инициализаторе для static
объект.
Но ваша первая инициализация также является фиктивной. Возможно, вы имели в виду
static const struct attribute * const attrs1= &foo_attribute.attr;
Таким образом, ваша инициализация второго будет читать что-то вроде
static const struct attribute_group attr_group = {
.attrs = &foo_attribute.attr,
};