未使用的值警告:C vs C使用gcc
发布时间:2020-12-16 07:17:05 所属栏目:百科 来源:网络整理
导读:是否有可能使 gcc处理C的未使用值警告,就像g为C处理它们?有关p amp; * P;在C中,有一个警告,但不是C.设置-wno-unused-value并不是一个真正的解决方案,因为它也会删除有用的警告(如下面第2行所示).例: $(gcc –version | head -1; ls -l qwe.*; cat qwe.x; e
是否有可能使
gcc处理C的未使用值警告,就像g为C处理它们?有关p&& amp; * P;在C中,有一个警告,但不是C.设置-wno-unused-value并不是一个真正的解决方案,因为它也会删除有用的警告(如下面第2行所示).例:
$(gcc –version | head -1; ls -l qwe.*; cat qwe.x; echo $sep; gcc -c -O2 -Wall qwe.c; echo $sep; g -c -O2 -Wall qwe .cc)2>& 1 | sed’s / ^ / /’ 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; } ^ 解决方法
您可以通过将它们转换为void来手动删除它们.
void f(int *p) { (void)*p+5; } 但这些警告是有原因的.这些实际上并没有做任何事情.这里没有任何副作用发生.因此调用此函数的结果与不调用函数的结果相同. 调用函数f(& x)可能会被合理的编译器完全优化掉. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 正则表达式的快速学习
- 正则表达式,从零开始(不断补充)
- oracle – SQL Loader中Insert和Append语句之间的区别?
- ruby – 如何匹配任何东西除了这个字符串?
- c# – 通过Xamarin.Android连接到Microsoft的认知说话人识别
- 在Objective-C中使用类扩展用于选择性可见性
- ruby-on-rails – NoMethodError未定义的方法’ – @Redory
- 如何检查C中的32位对齐的内存地址
- ruby-on-rails – 执行’rails s’时的NameError
- ios – 在dispatch_once崩溃(&onceToken,^ {