Bem-vindo de volta, amigo!
LOGIN
Ou Esqueceu a senha?

Programando like a boss #1

Por: Diego Pinto Administrador

Não use "#define" - Provavelmente você aprendeu isso na primeira aula de programação, e naquele momento pareceu incrível! Você podia definir um nome para um valor qualquer e usá-lo em qualquer lugar. Porém, há maneiras melhores de se fazer isso. O #define é uma mera substituição textual com escopo global, sendo que uma prática essencial para uma boa codificação é justamente a clareza na definição do escopo de cada item. Ao invés de usar o #define (velho amigo de guerra) por que não um const? É como uma variável que não pode variar (?). Ok, é instanciado como uma variável, mas é constante. Ao utilizar-se o const o compilador conhece o escopo desta utilização e o tipo do valor declarado. Assim, a ferramenta possui mais informação a respeito das intenções do programador, otimizando o software.

Exemplo: const float VIDA_UNVERSO_E_TUDO_MAIS = 42;

*A dica acima foi “epifanizada” programando-se em C++. Porém, esta dica pode servir para outras linguagens de programação e para a vida pessoal (porque não?).

Respostas

02/03/2016 20:17

Mauro Tschiedel Iniciante

Interessante!!

01/06/2016 3:42

Igor Andrade Aventureiro

Bacana isso cara, tô subistituindo tudo que tinha anteriormente como include por const ... e tem funcionado sempre.

Gostei da referencia a Douglas Adams do teu exemplo.

01/06/2016 3:45

Igor Andrade Aventureiro

{Errata} Aliás <define> e não <include> como mencionei acima.

11/06/2016 23:13

Joao Paulo Santos Iniciante

Boa noite galera! Só para contribuir, as boas práticas sugerem utilizar o compilador ao pré-compilador, ou seja const no lugar de #define, facilitando o diagnostico de erros no momento de depuração do código!

21/03/2016 22:01

Igor Andrade Aventureiro

Maneiro. 
Desta forma teria algum ganho de desempenho?

22/03/2016 2:49

Diego Pinto Administrador

Normalmente há um ganho sim, mas não sempre. Mas também recomento o uso do const por outros motivos: você pode definir o const em um escopo específico (dentro de uma função, classe, namespace) deixando o programa mais legível e organizado; o const tem a mesma sintaxe e comportamento de uma variável comum, assim você pode trocar de variável para const e vice versa com o mínimo de alteração no código; você pode utilizar referência indireta (ponteiro) para um const; e ainda compilar valores const em um objeto separado e linkar com o objeto principal sem a necessidade de recompilação (útil para atualização de software pré compilalo).

Responder a: Programando like a boss #1

POSTAR