我有一些编写C代码的古老记忆:
long value = 0;
Run Code Online (Sandbox Code Playgroud)
在糟糕的旧Win16天,最后value只有半初始化:即低16位0,高16位是内存中该位置的随机位.因此,我有条件写:
long value = 0L;
Run Code Online (Sandbox Code Playgroud)
在C99和/或C++这个时代仍然需要这个吗?我知道ILP32指定int并且long都是32位,但是假设我们正在使用LP64,其中ints是32位,longs是64位.是否需要后缀或现代形式的C和C++是否会将文字隐式地扩展到它们被赋给的变量的长度?
无符号值怎么样?即这是必需的吗?
unsigned long value = 0UL;
Run Code Online (Sandbox Code Playgroud)
小智 7
您提供的示例中不需要它们.但是,在一些有些晦涩难懂的情况下可能需要它们.例如,以下可能会产生不同的值:
sizeof(1)
sizeof(1L)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3141 次 |
| 最近记录: |