完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一个FIFO类,我已经在几个项目中使用。我一直定义了一个结构,它具有固定大小的缓冲区和头和尾的指针。我希望能够通过在不同的结构中分配不同大小的缓冲区来提高这个类的通用性。例如,用于Telnet套接字的FIFO可能需要不同于RS232的FIFO。我知道实现此目的的唯一方法是两个选项之一:1)在结构外部定义缓冲区,然后将缓冲区地址存储在结构中。2)使用malloc在初始化函数中动态分配缓冲区。实际上,这与#1相同,但是可以在单个函数调用中自动完成,其中#1要求用户正确地完成多个步骤。如果可能的话,我试着远离malloc。在这种情况下,我认为使用它不会有坏处,因为所有这些缓冲区只会在系统初始化期间建立,并且不会再次改变。一旦程序被验证,它每次都会以相同的方式运行。另一方面,在应用程序开始运行之后,没有任何东西可以阻止用户定义更多的FIFO。有没有更好的方法来实现我的目标?任何想法都将不胜感激!谢谢,John Vickers
|
|
相关推荐
4个回答
|
|
很多年前,我在Windows中创建了一个类似的C++类:确实存在这样的问题/请求。因为在引导时创建它们“ALL”,即使在PIC上,MALOC也可能是个好主意:否则,另一种方法将在名称中具有不同的类,后缀有不同的类,具有不同大小的缓冲器。或者保留一大块RAM,创建一些“私有”malloc(人们在嵌入式世界有时会这样做),确保它们永远不会碎片。
|
|
|
|
我的处理方法是创建一个C++缓冲类,它是在数据类型和容量上模板化的。否则,如果您想避免MalCube(),您的第一个选项并不坏。
|
|
|
|
C++的方法很有趣,但是我只想把代码保存在C中,谢谢输入!维克斯
|
|
|
|
创建一个所需大小的全局字符数组,然后将其映射到指向数据结构的指针。这将给您一个指向内存的指针,而不使用MalCube()。当然,你不能免费():
|
|
|
|
只有小组成员才能发言,加入小组>>
5238 浏览 9 评论
2028 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3204 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
777浏览 1评论
666浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
595浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
676浏览 0评论
576浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 04:21 , Processed in 1.300293 second(s), Total 55, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号