在我的家庭机器上,unsigned long是8个字节.在工作机上它的4个字节.当您在家中开始编写工作时,会出现通过网络传输数据的正确性问题.
谢谢.
#include <stdint.h> 对于以下typedef:
(u)int8_t(u)int16_t(u)int32_t(u)int64_t虽然最后可能会或可能不会,取决于平台.
那就不要那样做了.使用协议缓冲区之类的东西通过网络传输内容.将结构转储到文件描述符中只是一个坏主意,你不应该这样做.
<stdint.h>如果您具有符合C99的C实现,则可以使用以确保您使用的类型足以容纳您正在发送的数据.但即使这还不够,因为您的工作机器和家用机器可能会有不同的结束或任何其他问题.<stdint.h>非常适合确保您的变量足够大以容纳他们需要保留的全部值,但它们不是确保您可以通过网络传输数据而不会令人头疼的工具.