我在嵌入式系统中有一个struct
有3个16位值:
struct {
uint16_t x;
uint16_t y;
uint16_t z;
};
struct
将被传输到在同一硬件上运行相同软件的另一个系统。通过发送一系列8个8位值(send_data(uint8_t *data)
)来完成传输。
我的想法是给send_data
结构的地址。最后两个字节将被视为垃圾。这会有用吗?这样安全吗?
答案 0 :(得分:1)
只要您在另一端正确处理它,这应该是安全的(例如,不要将两个字节写入随机位置)。
我还建议你在代码中清楚地评论这个问题,以便将来的维护人员不会遇到麻烦。
OR
您可以更改发送和接收的结构,以便在末尾包含数据的名称(例如填充)。这将允许您在发送之前将这些字节清零。然后代码应该对任何工作的人都非常清楚,如果正确实现应该对性能没有影响。
答案 1 :(得分:1)
这会有用吗? - 是(send_data结构的地址。)
安全吗?操作上是,但测试没有。
建议不发送垃圾。根据需要填充给send_data()
的数据(2个字节),并将额外的内容初始化为0,这样可以简化调试并进行一致的回归测试。