
paulo1205
(usa Ubuntu)
Enviado em 14/07/2020 - 05:17h
A mensagem seria de
warning, em vez de erro, mas como você usou (devidamente — não pare de usar) a opção
-Werror, ele transformou o aviso em erro.
O que a mensagem diz é que o recuo de texto que você usou na linha 671 pode dar a entender visualmente que o comando dessa linha estaria sob a guarda do
for da linha 666, quando, na verdade, sintaticamente não está.
Para saber por que esse aviso/erro é bom, procure no Google por “Apple goto fail bug”.
Uma coisa que eu passei a fazer nos meus programas que resolvem tudo dentro dos parênteses do
for foi passar da forma
for(/* ... */); // Ponto e vírgula na mesa linha.
para esta seguinte.
for(/* ... */)
; // Ponto e vírgula na linha seguinte, e com uma tabulação a mais.
Se isso será suficiente para livrá-lo da mensagem de código perigoso por recuos visualmente enganosos, não sei. Possivelmente se a linha 671 também estiver com o mesmo nível (ou nível maior ainda) de recuo, a mensagem continue aparecendo.
Eu acho importante você usar recuo de forma consistente em todos os seus programas.
Eu uso como regra para mim usar recuos sempre com o caráter de tabulação; muito raramente uso espaços(†). Tem gente que prefere o contrário (sempre espaços, nunca tabulação). Isso é questão de gosto, embora alguns projetos obriguem um estilo ou outro (por exemplo, o Python força usar espaços, o kernel do Linux força usar tabulações). O importante, no entanto, é a consistência. E isso, às vezes (talvez muitas vezes), passa pela configuração do editor de texto. Alguns editores têm configurações que automaticamente substituem um certo número de espaços por um caráter de tabulação ou vice-versa, incluindo editores comuns, como o
vim, o que pode comprometer a consistência se algum dia o mesmo código for manipulado com outro editor. É bom conhecer as ferramentas que se usa no dia a dia, e escolher entre adaptar-se ao seu funcionamento ou reconfigurá-los para garantir que eles não vão estragar o seu estilo preferido.
----
(†) Quando o faço, geralmente é dentro de comentários, ou então quando escrevo código em formulários web, como aqui neste fórum, já que a tecla
tab dentro do navegador normalmente não funciona do mesmo jeito que o editor de texto.
... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)