0

このリンクをたどる

やった:

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,
4

1 に答える 1

2

はい、別のstructオブジェクトまたは別の変数の内容は、オブジェクトの初期化子で使用できる定数式とは見なされませんstatic

しかし、最初の初期化も偽物です。おそらくあなたは意味しました

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

したがって、2番目の初期化は次のようになります。

static const struct attribute_group attr_group = {
       .attrs = &foo_attribute.attr,
};
于 2012-08-26T14:26:18.210 に答える