`short`和C++中的`int`是一样的吗?

Set*_*ari -1 c++ int short

我看过一些short在C#中使用的答案,但我不确定他们是否真的回答了我的问题.是short在C++中另一个名字int?我知道你可以制作short int,这似乎能够处理很多价值但我还在开始,所以很明显,如果这short不是很多价值观.但是在这里的代码片段中:

short lives,aliensKilled;
Run Code Online (Sandbox Code Playgroud)

它不使用int short,它只是使用short.所以我想我的问题是,如果我不低于-32,768或超过32,767 ,我可以用它short作为替代品int吗?

另外,只要更换适当的东西,它是否可以替换shortint,并且它不会真正搞乱任何东西?(顺便说一下lives,aliensKilled它们都是变量名.)

Die*_*Epp 5

在C++(和C), ,short,short intint short用于相同类型的不同名称.保证此类型的范围至少为-32,767 .. + 32,767.(不,这不是一个错字.)

在大多数现代系统中,short是16位并且int是32位.只要不超出a的范围,您就可以intshort没有不良影响的情况下进行替换short.在大多数现代系统中,超出的范围short通常会导致价值缠绕,这种行为是不是由标准保证的,你应该依赖于它,特别是现在常见的C++编译器会修剪包含符号整数溢出代码路径.

然而,在大多数情况下,很少有利于更换intshort.我只会替换intshort,如果我至少有几千条.有并不总是一个好处,通过使用short可以减少所使用的内存和所需的带宽,但是可以潜在地增加从转换所需的CPU周期数short,以int(A short始终是"晋升"到int时候你就可以做算术).