Long 的大小冲突

Conflict in the Sizeof Long

我在网上查了一下,long 的大小是 4 个字节。但是当我在笔记本电脑上打印 sizeof(long) 时,它会打印 8 。为什么会出现价值观冲突?我正在使用这个打印语句

printf("%zu",sizeof(long));

你想看到的"conflict"来自于标准,它没有规定整数类型的具体宽度。不同的编译器使用不同的宽度。

但是真正的问题是:"What should I do?"

答案是为此目的使用标准提供的类型。对于 4 字节整数,包括 "stdint.h" 并使用 int32_t(或 uint32_t 用于无符号整数)。

请给自己一个标准,花时间看看它。不过,您无需阅读每一行,只需了解其中的内容即可。