Stlink: 具有统一变量类型的干净代码

创建于 2020-04-06  ·  6评论  ·  资料来源: stlink-org/stlink

据我所知,许多函数使用固定长度的变量。 对于需要处理固定数据格式的函数来说确实很有用。 然而,滥用固定长度变量会导致潜在的构建失败和无关紧要的强制转换。

例如在 src/usb.c 中:
image

send_recv 接受txsizerxsize作为size_t但在实际上下文中,这些参数必须转换为intunsigned int ,而不固定长度,调用它的人提供不同类型的参数(在这种情况下uint32_t或幻数)。 在调用过程中应用了从 32 位到 64 位的无意转换。 此外,为了防止构建失败,需要许多显式转换。

我建议根据实际使用情况替换固定长度的变量。
保持模糊以更便携。

如果其他人觉得它有意义,我想尝试一下。

codfeedback codrefactoring needissuer-feedback

所有6条评论

感谢您将其提上议程。 由于这是整个代码库中的一个普遍问题,我目前不确定我们是否应该立即将其放入 v1.6.1。 @martonmiklos之前要求做一些与代码风格相关的清理工作,我将其推入了 v1.6.2 里程碑。 也许这也是解决这个问题的好地方,尽管它会更进一步。

也许我可以先在本地做一些清理,然后跟进开发过程。😃

当然你可以,但请确保从develop分支并继续关注这个分支,而不是master ,它不再用于频繁的更改,而仅用于发布和修补程序。

关于 ILP32、LLP64 和 LP64 之间的兼容性,我认为将数据类型long替换int32_t是个好主意,但是如果您想排除未来与转换,我们可能会考虑尽可能地转移到固定宽度的整数类型......

@chenguokai :我会把这个留给你。 如果您愿意并有一些时间,您可以做出贡献。

我当然会,在发布之前。 现在很忙😔

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Vascom picture Vascom  ·  7评论

grzegorz-kraszewski picture grzegorz-kraszewski  ·  9评论

Vascom picture Vascom  ·  7评论

vitormhenrique picture vitormhenrique  ·  13评论

lulle2007200 picture lulle2007200  ·  12评论