打印

C语言通用队列问题

[复制链接]
1653|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1185655859|  楼主 | 2019-8-3 10:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近想实现一个通用循环队列,可以存放char、int、float等数据,请问可以有什么办法实现吗?每次调用创建一个类型的如char型队列或者float型队列,现在碰到的主要是类型如何区分

使用特权

评论回复

相关帖子

沙发
tyw| | 2019-8-3 10:59 | 只看该作者
C语言简单队列.pdf (333.41 KB)

使用特权

评论回复
板凳
zyj9490| | 2019-8-3 11:01 | 只看该作者
本帖最后由 zyj9490 于 2019-8-7 11:48 编辑

先创建最大需量的BUF,以CHAR标记,设一定数据类型,用指针来操作,地址的递增量即时数据类型。

使用特权

评论回复
地板
masmin| | 2019-8-3 22:11 | 只看该作者
举例:        union {
                u8  byte[4];
                u32 dword;
        } pt;

使用时,pt->dword = 0x12345678;
则:byte[0] = 0x78;
      byte[1] = 0x56;
      byte[2] = 0x34;
      byte[3] = 0x12;

使用特权

评论回复
5
masmin| | 2019-8-3 22:12 | 只看该作者
float 不好直接使用,要转换。

使用特权

评论回复
6
xcvista| | 2019-8-5 09:32 | 只看该作者
楼主用的是什么编译器?至少对于 x86、amd64 和 arm 处理器架构的 GCC 来说,int 和 float 的长度是一样的。char 直接填 0 扩展成 int,float 直接按字节转换成 int,然后做一个 int 队列。

使用特权

评论回复
7
lihui567| | 2019-8-5 11:07 | 只看该作者
先建一个结构体缓存队列,里面放不同类型的数据,然后用指针来存放数据

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

29

帖子

0

粉丝