本网站的另一个问题已证实,C 中没有缩写的字面后缀,并且可以执行以下操作:
short Number = (short)1;
但是转换它和不这样做有什么区别:
short Number = 1;
您使用哪个以及编译器如何以不同的方式处理它们有关系吗?
最佳答案
隐式转换和强制转换的效果没有区别,强制转换很大程度上是“纪录片” - 它说“我是故意这样做的”。
显式强制转换让潜在的维护者清楚地知道,他们的类型故意是短
,并且不应更改以匹配初始化程序。它还可以用于消除编译器或静态分析工具的警告。但是,如果您提供的初始化程序对于短期而言太大 - 它也会消除任何警告。
显式转换可能在宏定义中更有用,例如:
#define DEFAULT_CONDITION ((short)1)
short condition = DEFAULT_CONDITION ;
关于c - (未)签名短整型 (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24548241/