AVISO

AVISO: ESTE É MEU ANTIGO BLOG, QUE NÃO É MAIS ESCRITO DESDE 2011. O CONTEÚDO AQUI EXPRESSO PODE NÃO REPRESENTAR MEUS PENSAMENTOS E OPINIÕES DE IDADE ADULTA. PARA CONTEÚDOS NOVOS E RELEVANTES ACESSE BLOG.BRUNO.TODAY




sábado, 25 de outubro de 2008

DICA: Eliminando Warnings de Seus Programas

Palavras-chave: C/C++, GCC, Dicas

Constatei vendo meus diversos amigos(colegas e ex-colegas de trabalho, colegas de faculdade, conhecidos diversos) programando: a esmagadora maioria dos programadores IGNORA os warnings do compilador.

As razões disso parecem ter duas origens. A primeira delas é a 'omissão', aquela idéia de "ahh, compilou, não dá nada". Neste caso, o indivíduo deveria se auto considerar desleixado, e dependendo do que ele estiver desenvolvendo, irresponsável. Quando falamos de C ou C++, aonde lidamos com mais elementos de "não tão alto nível assim" - como ponteiros e assembly inline, essa omissão se torna mais grave ainda.


Agora todos que leram até aqui, se ainda não eram concientes agora são(eu espero). Sendo assim, vamos para a segunda causa. Você está na correria. Seu programa gerou alguns warnings. Apenas por mal costume(e todos nós temos), você 'deixa para depois' corrigir aquele warning. Aí o dia que você vai corrigir os warnins deixados para depois, você se surpreende: apenas 800 warnings para corrigir. Nada que 3 meses de trabalho não resolvam, pouquinha coisa!!

E lá vai o dito programador corrigindo warning por warning, e contando eles novamente... 800... 799... 798... ... ... 0. Terminou, warnings zerados. Aí você pensa: agora eu não deixo mais para depois. Aí o primeiro momento de "correria com prazos" você deixa 1 pra depois. E ainda diz para sí mesmo: é só 1, os outros não vou deixar.

Nós, seres humanos, insistimos nessas coisas. Mas é fato, não adianta você dizer para sí mesmo que vai deixar só aquele para depois. Sempre aparecem outras excessões.

Sendo assim, aqui vai uma dica para quem utiliza o GCC. Se não funciona por nossa própria consciência, então o compilador que nos obrigue!! Existem diversos parâmetros do compilador relacionados a Warnings, mas eu só vou falar de dois.

O primeiro é o -Wall, que manda o compilador registrar e exibir todos os warnings. O segundo é o -Werror, que faz com que warnings sejam tratados como erros. Com esses dois parâmetros juntos você não tem escapatória: terá que corrigir seu warning, ou o programa não compila. Veja a linha de comando de exemplo:

$ gcc -Wall -Werror -o binario source.cpp

Pronto. Assim seu código é mais confiável, e você não paga nada a mais por isso. Espero que todos gostem deste artigo!!

[]'s

Classificação do conteúdo: SÉRIO
Sobre Bruno Moreira Guedes:
Curriculum Vitae
Site Pessoal

2 comentários:

Anônimo disse...

é mesmo. uma vez eu pedir muitas horas por que uma função não void não tinha return. se tivesse posto um -Wall tinha evitado.

Samuel Feitosa disse...

Tá bom, eu adimito que foi você que fez a boa ação de retirar os Warnings dos nossos fontes :]

Abração!!!

Sobre Bruno Moreira Guedes