700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 搞清楚C语言的网络函数族hton ntoh 以及大小端记忆法

搞清楚C语言的网络函数族hton ntoh 以及大小端记忆法

时间:2022-05-05 09:10:04

相关推荐

搞清楚C语言的网络函数族hton ntoh 以及大小端记忆法

友链

今天要说的就是下面这几个函数

extern uint32_t ntohl (uint32_t __netlong) __THROW __attribute__ ((__const__));extern uint16_t ntohs (uint16_t __netshort)__THROW __attribute__ ((__const__));extern uint32_t htonl (uint32_t __hostlong)__THROW __attribute__ ((__const__));extern uint16_t htons (uint16_t __hostshort)__THROW __attribute__ ((__const__));

// 之前看这个函数的时候总是记不住该用哪个,因为他们的名字都太相近了

// 现在在这里说明一下,这个函数的名称可以被分为四部分

// h to n s

// h代表host,n代表net,s代表类型为unsigned short,to就不用说了,就是英文单词to

// 所有htons意思就是将一个unsigned short的值从本地序转为网络序

// 本地序可能为大端也可能为小端,但是网络序一定是大端

// 转换完成后,返回值给了sockaddr_in结构体的sin_port成员

关于大小端的记忆方法,我这里提供一张图片

这个就是大端,其实这个很好记忆,相当于把横着的顺时针旋转90度变成那个竖着的(内存布局)

这张图里的内存布局是从上到下地址是变大的,横着的那个大端序的数字就是我们手写数字时的习惯,即高位在前面

也就是说大端序的内存布局其实是最符合人类直觉的,就这么记就行了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。