Tag: warnings

在#include指令结束时禁止GCC警告“额外令牌”

我正在用C语言编写一个程序,用于在HP NonStop机器上编译和运行。 但是,我想在运行Linux的工作站上进行主要开发。 HP NonStop C编译器需要非标准的#include指令,如下所示: #include nolist 对于每个#include指令,我的工作站的GCC抱怨: S88USF.c:139:21: warning: extra tokens at end of #include directive 我该怎样抑制这个特别警告? 注意:在SO上,已经提出了类似的问题,正确的答案是“不要让gcc首先抱怨任何理由”。 但是,在这种情况下,我明确地希望完全按原样使用#include指令。 我知道我在做什么,我只是不知道如何通知gcc。

如何删除gcc 4.6中的警告:缺少初始化程序?

代码: GValue value = { 0 }; 发出以下警告: 缺少初始值设定项[-Wmissing-field-initializers] 我知道这是一个gcc’s BUG ; 但有一些技巧可以删除它吗? 真的不太好看到这种不真实的警告。 但是我不希望断电警告,因为它也会隐藏我的真实警告。 很抱歉,但我无法将我的gcc更新为4.7(看起来它已修复)版本。

是否有办法警告行为不端的指定初始化器?

C99引入了结构的指定初始化器的概念。 例如,给定: typedef struct { int c; char a; float b; } X; 我可以初始化为: X foo = {.a = ‘\1’, .b = 2.0F, .c = 4}; 并且调用: printf(“c = %d\na = %hhu\nb = %f”, foo.c, foo.a, foo.b); 输出: c = 4 a = 1 b = 2.000000 如此处所述,这具有分配给c然后b然后b的“令人惊讶的行为”,与我指定的初始化器的顺序无关。 如果我有这样的函数,这将成为一个真正的问题: int i = 0; int f() […]