转换警告递增

时间:2018-06-26 13:28:43

标签: c++ tdd gcc-warning

我正在使用TDD进行编程,其中所有警告都转换为错误,并且出现了奇怪的警告/错误。我有这样的代码

short int a = 0;
/* .... */
a = a + 2;

我编译时收到此消息

  

错误:从'int'转换为'short int'可能会更改其值[-Werror = conversion]

但如果我更改此行:

a = (short int)(a + 2);

错误消失了。我的问题是,是否真的需要强制执行所有增量/减量或任何基本操作?为什么在所有变量或常量均为short int的操作中,编译器将某些内容强制转换为int?即使我将行更改为

a = a + (short int)1;

出现错误,所以我认为问题不在于常数

我用

  

g ++(Debian 6.3.0-18 + deb9u1)6.3.0 20170516

非常感谢

0 个答案:

没有答案