如今来讲一下这个消息队列所传递的数据类型和特性。数组
首先,这个消息队列不是真正意义上的“队列”,它呢只会把每次存入的数据指针排队,而不会保存该数据。因此调用OSQPost时若是每次都是相同的指针,那就说明 白放了,由于读取的时候读到的是同一个指针,他老是最新的数据,老的没了,何来队列?spa
其次,该队列能够保存void*类型指针,即全部数据类型都适用,管他是整型仍是结构体。指针
如今这个队列不是真队列,那怎么解决?莫急,看下面:队列
我这里提一种简单的方法,复杂的各位资格解决吧。消息队列
一、定义一个存放数据的缓冲区数组,这样每次向对列添加时就能够用不一样的地址。例如struct my_struct data_array[10]变量
二、而后就是怎么变这个数组下标的问题,直接定义一个变量来寻找,而后使用++,到最后再折回来就行了,例如:数据类型
int idx=0;方法
idx++;数据
idx %= BUF_SIZE;co
三、对于速度能及时解决的任务,那下标这样搞就能够,若是不行,那可能要从新考虑覆盖的问题了。