c - (未)签名短整型 (C)

标签 c literals short

本网站的另一个问题已证实,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/

相关文章:

c - 如何在 C 中将动态 double 组元素初始化为 0?

java - 将 Java 移植到 AS3

c - 抑制 A "Unused variable x"警告的最佳方法是什么?

c - 类似于 scanf 的函数中的内存泄漏问题

java - 获取数组类型的 Class 对象的最佳方法是什么?

java - 如何从两个现有的类文字构造参数化类文字?

c++ - 3 * 1000000000 作为int溢出,但是变量是long long。为什么?

Java - 无符号值的奇怪错误

Python 对短整型而不是整型执行字节操作

c - 关于 Stream 以及 getchar() 和 fgetc()