我对编写 C 代码有一些古老的记忆,例如:
long value = 0;
在糟糕的旧 Win16 日子里,最后value
只初始化了一半:即低 16 位是0
,高 16 位是内存中那个位置的任何随机位。因此,我变得有条件写:
long value = 0L;
在当今的 C99 和/或 C++ 下,这是否仍然需要?我知道 ILP32 指定int
并且long
都是 32 位的,但假设我们使用 LP64,其中int
s 是 32 位,long
s 是 64 位。是否需要后缀,或者现代形式的 C 和 C++ 是否会将文字隐式扩展为分配给它们的变量的长度?
无符号值怎么样?即这是必需的吗?
unsigned long value = 0UL;