Riot: 避免使用 goto

创建于 2017-07-06  ·  6评论  ·  资料来源: RIOT-OS/RIOT

使用 goto 是一种糟糕的编程习惯。 在核心代码中使用可能有一些好处(我看不到任何好处),但看在上帝的份上,不要在示例中使用它。

引起我注意的文件是 RIOT/blob/master/examples/gcoap/gcoap_cli.c,它在第 139 行有一个 goto statememt,可以简单地用标签 end: 下的代码替换:(只有两行)。

contested minor cleanup

所有6条评论

对于 gcoap 示例,您当然是对的。 另一方面,考虑到这是一个(嵌入式)物联网操作系统,总体而言,RIOT 中大约有 30 种(一些)goto 用法,这个数量相当少。

因此,请随时提供修复 gcoap 示例的 PR,否则我不认为这是一个问题(至少目前如此)。

使用 goto 是一种糟糕的编程习惯。

这是值得商榷的。 在 C 中使用 goto 进行错误处理实际上被许多人认为是一种好的做法,因为它通常会导致代码更易读、更不容易出错。

gcoap_cli.c 其中第 139 行有一个 goto statememt,可以简单地替换为标签 end: 下的代码:(只有两行)。

你的意思是,重复 printf 调用?

你的意思是,重复 printf 调用?

我认为使用if .. else if ... else可以轻松地修改代码,避免使用goto而不会影响可读性——这在所有使用goto的情况下都是不可能的。

你的意思是,重复 printf 调用?
我认为代码可以很容易地使用......

当然。 我想指出,仅仅复制这两行并不会削减它。

这与减少代码行无关。 它是关于可读性和良好的代码实践。 当使用 goto 而不是 if...else.... 时,“它被认为是有害的”

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

相关问题

jue89 picture jue89  ·  5评论

miri64 picture miri64  ·  3评论

chrysn picture chrysn  ·  5评论

gschorcht picture gschorcht  ·  7评论

jcarrano picture jcarrano  ·  5评论