Usar goto é uma prática de programação terrível. Pode haver alguns benefícios para usar no código principal (não consigo ver nenhum), mas pelo amor de Deus não use nos exemplos.
O arquivo que me chamou a atenção é o RIOT/blob/master/examples/gcoap/gcoap_cli.c que na linha 139 possui um comando goto, que pode ser simplesmente substituído pelo código sob o rótulo end: (apenas duas linhas).
para o exemplo do gcoap, você certamente está certo. Por outro lado, existem cerca de 30 (algo) usos de goto no RIOT em geral, considerando que este é um sistema operacional IoT (embutido), essa contagem é bastante baixa.
Portanto, sinta-se à vontade para fornecer um PR corrigindo o exemplo do gcoap, mas, caso contrário, não vejo isso como um problema (pelo menos por enquanto).
Usar goto é uma prática de programação terrível.
Isso é discutível. Usar goto para tratamento de erros em C é, na verdade, considerado uma boa prática por muitos, pois geralmente leva a um código mais legível e menos propenso a erros.
gcoap_cli.c que na linha 139 tem um comando goto, que pode ser simplesmente substituído pelo código sob o rótulo end: (apenas duas linhas).
Você quer dizer, duplicar a chamada printf?
Você quer dizer, duplicar a chamada printf?
Eu acho que o código pode ser facilmente retrabalhado usando if .. else if ... else
evitando goto
sem afetar a legibilidade - o que não é possível em todos os casos em que goto
é usado.
Você quer dizer, duplicar a chamada printf?
Eu acho que o código pode ser facilmente retrabalhado usando ...
Certo. Eu queria salientar que apenas copiar as duas linhas não vai cortá-lo.
Não se trata de reduzir a linha de códigos. Trata-se de legibilidade e boas práticas de código. Quando goto é usado em vez de if...else.... então "é considerado prejudicial"