请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC3200SDK 工具/软件:TI-RTOS
我有指向大小为2kB 的数据结构的指针、我想经常在线程之间传递它们。 写作很明显。 但是,由于读取函数具有以下定义 OSI MsgQRead (OsiMsgQ_t *队列、void* pMsg、OsiTime_t 超时),因此读取似乎不太清楚。 正如我看到的、第二个参数只是指向 void 的指针、这可确保写入指针中的数据被复制到传递的指针中。 因此,一个自然的问题是:为什么不接受 void **ptr,而只保存写指针,以避免复制数据? 此外、嵌入式系统中过多的复制会导致性能不佳。
关于这个问题、我现在唯一可以看到的解决方案是以以下方式为我的消息指针创建一个包装程序并将其传递到队列:
struct wrapper {
MyMsg *msg;
}
是否有更好的方法?