如果使用已经在主机字节顺序中的整数调用ntohl()会发生什么?

时间:2011-07-08 19:15:41

标签: c endianness

如果我对已经在主机字节顺序中的整数使用ntohl()会导致任何问题吗?

如果没有,ntohl()函数如何知道它的参数已经是主机字节顺序?

3 个答案:

答案 0 :(得分:3)

你的问题没有任何意义。对于ntohl,没有任何内容是高阶或低阶。

  • 如果系统的字节顺序与网络顺序相同,则无效
  • 否则会交换周围的东西

答案 1 :(得分:1)

它不知道。假设它以网络字节顺序给出一个整数,并在必要时将其转换为主机 - 这就是全部。

答案 2 :(得分:0)

你问“如果我在整数上调用ntohl()两次,会不会引起问题?”

答案是“是的。”

如果您考虑函数的名称,这应该是显而易见的。它被命名为“网络托管长”。调用此函数后,整数现在处于主机字节顺序,而不是网络字节顺序。