鉴于从较大类型转换为较小类型(比如int
->short
(通常是个坏主意,我想添加编译器标志(GCC(,使从较大类型转为较小类型成为错误(或至少是一个警告(。
有旗帜可以做到这一点吗?
编辑:是的,我指的是隐式转换。感谢回答这个问题的人。
如果您的意思是:
short a; int b = 42; a = b;
-Wconversion
是你要找的,-Werror=conversion
会使它成为一个错误。
如果你的意思是:
short a; int b = 42; a = (short)b;
你可以检查这个答案:
通过使用显式转换("cast"(,您已经告诉编译器:";我肯定想这么做;。这就是演员阵容的意义。它编译器发出警告是没有意义的。