如果我正在使用 clang 工具,那么推荐的方法是获取 clang 或 clang 工具链的某些部分来告诉我,例如将 int
传递给采用 short
的函数可能是个坏主意?
鉴于这个非常简单的程序
static short sus = 0;
void foo(short us) {
sus = us;
}
int main() {
int i = 500000;
foo(i); // any indication from clang this might be a bad idea
return 0;
}
我一定在这里遗漏了一些非常简单的东西,对吧?
最佳答案
-Weverything
option 在这种情况下很有用。它启用了 clang 的每个警告选项,包括许多 -Wall -Wextra
不包括。其中许多是无用的或适得其反的,但是如果有一个警告您认为有问题的代码,这会让您找到它,并告诉您哪个选项可以专门启用它。 Try it on godbolt .
在这种情况下,使用 -Weverything
向我们展示:
<source>:8:7: warning: implicit conversion loses integer precision: 'int' to 'short' [-Wimplicit-int-conversion]
foo(i); // any indication from clang this might be a bad idea
~~~ ^
所以你想要的选项是 -Wimplicit-int-conversion
.
关于c++ - 如何让叮当警告非常简单的缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69547984/