Definição de Constantes

Muitas vezes é desejável que além de uma variável possuir um valor pré-definido, quer-se que este valor não seja modificado por nenhuma função de um programa.

Para que isto aconteça deve-se colocar a palavra const antes da definição da variável, indicando ao compilador que quando detectar uma mudança de valor da variável, seja emitida uma mensagem de erro.

Este instrumento é muito utilizado para documentar a passagem de parâmetros de uma função, indicando que um determinado parâmetro não será alterado pela função.

Exemplos:

const float fValorSalário = 5000; /* Se for constante nunca receberei aumento ???*/
const char cSexo = ‘M’; /* Com certeza !!! */

Constantes Numéricas

Sempre é preciso colocar constantes em um programa. A linguagem C permite a colocação de constantes, exigindo, porém uma sintaxe diferenciada para que o compilador identifique o tipo da constante e realize o processamento adequado dela.

Na linguagem C têm-se os seguintes formatos para as constantes numéricas:

  • Números inteiros - De uma maneira geral basta colocar o número no programa para que o compilador entenda o formato e trabalhe de maneira adequada. Para números de tipo long deve-se colocar a letra L (exemplo: 20L)
  • Números reais - A exceção vale quando se quer colocar uma constante float que neste caso precisa-se indicar o formato através da letra F no final ou utilizar o formato de ponto flutuante (exemplos: 1.0 ou 1F) para que compilador entenda. Pode-se também utilizar o formato científico para isto (exemplo: 0.1E+1).
  • Números octais - Se um número iniciar por zero o compilador irá considerar este número como OCTAL, mudando o valor final. Exemplo: Se no programa for colocar 010, o compilador entenderá que foi colocado o valor 8 no programa, pois 010 é a representação octal do número 8.

Outro exemplo: Se colocado 0019 será gerado um erro de compilação, pois o compilador não aceita os dígitos 8 e 9 em um número octal.

  • Números hexadecimais - Uma outra maneira de indicar um número para o compilador é o formato em HEXADECIMAL. Este formato é muito útil quando se trabalha com bits e operações para ligar ou desligar determinados bits de uma variável. Uma constante será considerada em hexadecimal se a mesma começar por 0x. Neste caso são aceitos os dígitos 0 a 9 e as letras ‘a’ a ‘f’, maiúsculas ou minúsculas.

Outras Constantes

Além das constantes numéricas pode-se colocar constantes do tipo caractere. O compilador identifica estas constantes através dos apóstrofos. O compilador permite que se coloque um único caractere entre apóstrofo.

Existe uma maneira alternativa de se indicar o caractere quando o mesmo é um caractere de controle. Para isto basta colocar entre apóstrofo a barra invertida e o código ASCII do caractere desejado. Por exemplo, para se colocar um <Ctrl>A em uma variável pode-se colocar ‘\1’, para se colocar um <ENTER> utiliza-se a constante ‘\13’.

Como alguns caracteres de controle são muito usados existe uma maneira especial de se indicar estes caracteres. Abaixo estão alguns formatos interpretados pelo compilador:

Código Significado
\b Retrocesso (back)
\f Alimentação de formulário (form feed)
\n Nova linha (new line)
\t Tabulação horizontal (tab)
\” Aspas
\' Apóstrofo
\0 Nulo (0 em decimal)
\\ Barra invertida
\v Tabulação vertical
\a Sinal sonoro (beep)
\N Constante octal (N é o valor da constante)
\xN Constante hexadecimal (N é o valor da constante)

De uma maneira geral toda vez que o compilador encontrar a barra invertida ele não processará o próximo caractere, a não ser que seja um dos indicados acima.

O compilador também permite a criação de strings de caracteres. Para se colocar constantes deste tipo deve-se colocar a string entre aspas. Podem-se colocar caracteres especiais utilizando o formato visto acima dentro da string que o compilador irá gerar o código adequado.

Marcos Laureano 2008/04/25 09:57

const.txt · Última modificação: 2008/05/03 19:24 por laureano
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0