【发布时间】:2012-11-02 15:30:52
【问题描述】:
代码:
GValue value = { 0 };
给出以下警告:
缺少初始化程序 [-Wmissing-field-initializers]
我知道那是gcc's BUG;但是有什么技巧可以删除它吗?看到这样不真实的警告真的不太好。但我不想关闭警告,因为它也会对我隐藏真正的警告。很抱歉,但我还不能将我的 gcc 更新到 4.7(看起来已经修复)版本。
【问题讨论】:
-
我非常怀疑这是一个 gcc 错误。你能告诉我们GValue的结构定义吗?
-
这只是一个例子;我正在寻找适用于任何结构的解决方案。
-
@GajananH 我认为我们可以假设它是一个 GLib GValue——这意味着它有多个成员(实际上,值得的结构 没有一个成员?)
-
@hobbs:与结构体有多少成员无关,通过使用
{0},所有成员都应设置为0。正如您在我帖子中的链接中看到的那样,它在 C 标准中进行了描述。 -
没有错误。根据该标准,符合标准的实现可以出于任何原因(包括外观原因)发出诊断消息,只要它仍然接受有效程序(即它是警告而不是错误)。您可以禁用此特定警告。
标签: c gcc struct warnings glib