无意在c++的qq群里看了一个关于ip头部定义的讨论,我参与了一下,就扯到了大小端。后来我在看lua源码的时候,关于lua的number类型也扯到了双精度浮点数的表示。通过一个小的代码可以略微解答其中的秘密。 ...
分类:
其他好文 时间:
2017-11-07 19:39:37
阅读次数:
161
Struct:结构体Union:联合体联合体是几个不同类型的变量共占一段内存(相互覆盖),因为是内存共享,所以它不能同时存放多个成员的值,而只能存放其中的一个值,就是最后赋予它的值,例如:uni.a=3,uni.b=4.5,uni.c="A";赋值之后共享的同一块内存的值会被覆盖。对于union的不同..
分类:
其他好文 时间:
2017-11-06 22:43:59
阅读次数:
163
利用union可以用相同的存储空间存储不同型别的数据类型,从而节省内存空间。当访问其内成员时可用"."和"->"来直接访问。 当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。在C Programming Language 一书中对于联合体是这么描述的:1)联合体是一个 ...
分类:
编程语言 时间:
2017-10-23 18:08:57
阅读次数:
310
网络字节序与主机字节序的转换 在对IP地址结构体SOCKADDR_IN赋值的时候,经常会用到下列的函数htonl,htons,inet_addr,与之相对应的函数是ntohl,ntohs,inet_ntoa。查看这些函数的解析,会发现这些函数其实是与主机字节序和网络字节序之间转换有关。就是什么网络字 ...
分类:
其他好文 时间:
2017-10-14 12:12:02
阅读次数:
208
之前我对大小端的理解是数据存放方式不同,最近在读《计算机组成-结构化方法》一书时发现,并不是存放方式不同,而是字节地址的编排方式不同,换句话说,存的位置都是一样的,只不过这个位置因为编址方式的不同使得它的地址编号不同,也因此产生了大小端问题。下面的理解均是我个人对于《计算机组成-结构化方法》第六版2 ...
分类:
其他好文 时间:
2017-10-12 15:42:06
阅读次数:
143
一:什么是大小端 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址 ...
分类:
其他好文 时间:
2017-09-26 23:37:42
阅读次数:
252
redis里面的整数集合保存的都是整数,有int_16、int_32和int_64这3种类型,和C++中的set容器差不多。 同时具备如下特点: 1、set里面的数不重复,均为唯一。 2、set里面的数是从小到大有序的,这在后面的intsetAdd函数中可以看到。 然后由于我们可以同时存储int_1 ...
分类:
其他好文 时间:
2017-09-17 00:20:44
阅读次数:
258
《Extending and Embedding PHP》PHP扩展开发和内核应用最好的书,没有之一。对php中变量的引用计数、写时复制,写时改变,写时复制和改变做个”翻译“。 ZVAL 看下面的内容之前先对zval这个结构体做个了解 zval结构体中共有4个元素,value是一个联合体,用来真正的 ...
分类:
Web程序 时间:
2017-08-21 19:39:20
阅读次数:
358
1.C与C++ NULL区别 #ifdef_cplusplus #define NULL 0 #else #define NULL ((void*)0) #endif 2.字节是内存编址的最小单位。 ...
分类:
编程语言 时间:
2017-08-21 00:18:07
阅读次数:
234
定义一群接口一样的函数,使用联合体结构体函数指针; ...
分类:
其他好文 时间:
2017-08-19 12:41:12
阅读次数:
161