是否有可能使gcc处理C语言中未使用值的警告,就像g++处理C++一样? 对于像
p && ++*p;
这样的指令,在C中会有警告,但在C ++中不会。 设置-wno-unused-value
并不是真正的解决方案,因为它也会删除有用的警告(例如下面第2行中的警告)。 示例:gcc (Debian 4.9.2-10) 4.9.2
lrwxrwxrwx 1 tml tml 5 Jul 23 10:12 qwe.c -> qwe.x
lrwxrwxrwx 1 tml tml 5 Jul 23 10:12 qwe.cc -> qwe.x
-rw-r--r-- 1 tml tml 1384 Jul 23 10:49 qwe.o
-rw-r--r-- 1 tml tml 55 Jul 23 10:49 qwe.x
void g(int *p) { p && ++*p; }
void f(int *p) { *p+5; }
-------------------------------------------
qwe.c: In function ‘g’:
qwe.c:1:20: warning: value computed is not used [-Wunused-value]
void g(int *p) { p && ++*p; }
^
qwe.c: In function ‘f’:
qwe.c:2:18: warning: statement with no effect [-Wunused-value]
void f(int *p) { *p+5; }
^
-------------------------------------------
qwe.cc: In function ‘void f(int*)’:
qwe.cc:2:20: warning: statement has no effect [-Wunused-value]
void f(int *p) { *p+5; }
^
if (p) ++*p;
,这会改变什么吗? - hyde