8位,16位,32位,64位操作系统具有不同的整数,浮点和双精度值数据范围.
这是编译器还是处理器(8位,16位,32位,64位).
如果在网络中如果将来自一个系统的16位整数数据传输到32位系统,反之亦然,则数据将在内存中正确表示.请帮助我理解.
最终,它取决于编译器.编译器可以自由选择它喜欢的任何数据类型*,即使它必须使用软件例程模拟它们的行为.当然,通常,为了提高效率,它将尝试复制底层硬件的本机类型.
至于你的第二个问题,是的,当然,如果你将原始表示从一个体系结构转移到另一个体系结构,它可能会被错误地解释(字节顺序是另一个问题).这就是ntohs()使用函数的原因.
*嗯,不是它喜欢的字面意思.C标准存在一些约束,例如int必须至少与a一样大short.