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