在C中,什么是使类型转换更加严格的编译器标志



鉴于从较大类型转换为较小类型(比如int->short(通常是个坏主意,我想添加编译器标志(GCC(,使从较大类型转为较小类型成为错误(或至少是一个警告(。

有旗帜可以做到这一点吗?

编辑:是的,我指的是隐式转换。感谢回答这个问题的人。

如果您的意思是:

short a; int b = 42; a = b;

-Wconversion是你要找的,-Werror=conversion会使它成为一个错误。

如果你的意思是:

short a; int b = 42; a = (short)b;

你可以检查这个答案:

通过使用显式转换("cast"(,您已经告诉编译器:";我肯定想这么做;。这就是演员阵容的意义。它编译器发出警告是没有意义的。

最新更新