c-initializer元素不是常量-如何解决错误



跟随此链接

我做到了:

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,

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

但您的第一次初始化也是伪造的。也许你是说

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

所以你对第二个的初始化读起来像

static const struct attribute_group attr_group = {
       .attrs = &foo_attribute.attr,
};

相关内容

最新更新