当前位置:  开发笔记 > 编程语言 > 正文

我可以让GCC警告将过多的类型传递给函数吗?

如何解决《我可以让GCC警告将过多的类型传递给函数吗?》经验,为你挑选了1个好方法。

以下是一些明显有缺陷的代码,我认为编译器应该发出诊断信息.但是,即使有我能想到的所有警告选项,它既不会gccg++不会:-pedantic -Wall -Wextra

#include 

short f(short x)
{
    return x;
}

int main()
{
    long x = 0x10000007;   /* bigger than short */
    printf("%d\n", f(x));  /* hoping for a warning here */
    return 0;
}

有没有办法制作gccg++警告这个?另外,您是否有另一个编译器在默认情况下或在相当常见的额外警告配置中对此进行警告?

注意:我正在使用GCC(C和C++编译器)版本4.2.4.

编辑:我刚刚找到gcc -Wconversion了诀窍,但是相同的选项g++没有,我真的在这里使用C++,所以我需要一个解决方案g++(现在我想知道为什么-Wconversion似乎不是这样).

编辑:http://gcc.gnu.org/bugzilla/show_bug.cgi? id = 34389建议这可能会修复g++ 4.4...也许?我还不清楚它是否是同一个问题和/或修复是否真的出现在那个版本中.也许有4.3或4.4的人可以试试我的测试用例.



1> Reed Hedges..:

使用-Wconversion - 当调用函数f(short x)[not printf]时,问题是从long x到short的隐式转换(转换),而-Wconversion会说"从long到short转换可能会改变值" ".

..

编辑:刚看到你的笔记.-Wconversion在Linux上使用g ++ 4.3.2给我一个警告...(4.3.2-1 on Debian)

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有