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
用于无符号整数)。
请给自己一个标准,花时间看看它。不过,您无需阅读每一行,只需了解其中的内容即可。
我在网上查了一下,long 的大小是 4 个字节。但是当我在笔记本电脑上打印 sizeof(long) 时,它会打印 8 。为什么会出现价值观冲突?我正在使用这个打印语句
printf("%zu",sizeof(long));
你想看到的"conflict"来自于标准,它没有规定整数类型的具体宽度。不同的编译器使用不同的宽度。
但是真正的问题是:"What should I do?"
答案是为此目的使用标准提供的类型。对于 4 字节整数,包括 "stdint.h" 并使用 int32_t
(或 uint32_t
用于无符号整数)。
请给自己一个标准,花时间看看它。不过,您无需阅读每一行,只需了解其中的内容即可。