C 如果使用已在主机字节顺序中的整数调用ntohl(),会发生什么情况?
如果我对已按主机字节顺序排列的整数使用ntohl(),会导致任何问题吗C 如果使用已在主机字节顺序中的整数调用ntohl(),会发生什么情况?,c,endianness,C,Endianness,如果我对已按主机字节顺序排列的整数使用ntohl(),会导致任何问题吗 如果不是,那么ntohl()函数如何知道其参数已按主机字节顺序排列?您的问题没有任何意义。对于ntohl没有高阶或低阶 如果系统的端度与网络顺序相同,则它将不起任何作用 否则它会交换东西 你的问题毫无意义。对于ntohl没有高阶或低阶 如果系统的端度与网络顺序相同,则它将不起任何作用 否则它会交换东西 它不知道。它假定给定了一个网络字节顺序的整数,并在必要时将其转换为主机,仅此而已。它不知道。它假定给定了一个网络字节顺序
如果不是,那么ntohl()函数如何知道其参数已按主机字节顺序排列?您的问题没有任何意义。对于
ntohl
没有高阶或低阶
- 如果系统的端度与网络顺序相同,则它将不起任何作用
- 否则它会交换东西
- 你的问题毫无意义。对于
ntohl
没有高阶或低阶
- 如果系统的端度与网络顺序相同,则它将不起任何作用
- 否则它会交换东西
它不知道。它假定给定了一个网络字节顺序的整数,并在必要时将其转换为主机,仅此而已。它不知道。它假定给定了一个网络字节顺序的整数,并在必要时将其转换为主机,仅此而已。您会问“如果我对整数调用两次ntohl(),是否会导致问题?” 答案是“是的。” 如果您考虑函数的名称,这应该是显而易见的。它被命名为“网络到主机长”。调用此函数后,整数现在是主机字节顺序,而不是网络字节顺序。您会问“如果我对整数调用两次ntohl(),是否会导致问题?” 答案是“是的。”
如果您考虑函数的名称,这应该是显而易见的。它被命名为“网络到主机长”。调用此函数后,整数现在是主机字节顺序,而不是网络字节顺序。是的,这就是我想问的。谢谢:)对不起sttupid问题。是的,这就是我想问的。谢谢:)对不起sttupid问题。如果将数字乘以-1会发生什么,两次?@hexa:没有要求
ntohl
order-2。如果主机端性更奇怪,可能会搞得一团糟。@R。。一定很奇怪。你知道这样一个平台/拱门吗?不知道,我怀疑它是否存在,但这仍然不是一个要求。如果你将一个数字乘以-1,两次会发生什么?@hexa:没有要求ntohl
为2阶。如果主机端性更奇怪,可能会搞得一团糟。@R。。一定很奇怪。你知道这样一个平台/拱门吗?不,我怀疑它是否存在,但它仍然不是必需的。当然,主机字节顺序可能与网络字节顺序相同,在这种情况下…@Roddy:在这种情况下,根本不需要调用该函数。当然,主机字节顺序可能与网络字节顺序相同,在这种情况下…@Roddy:在这种情况下,根本不需要调用函数。除了代码不再是可移植的。