C - Constantes e Literais
Constantes referem-se a valores fixos que o programa não pode alterar durante sua execução. Esses valores fixos também são chamadosliterals.
As constantes podem ser de qualquer um dos tipos de dados básicos, como uma constante inteira, uma constante flutuante, uma constante de caractere ou um literal de string . Também existem constantes de enumeração.
As constantes são tratadas como variáveis regulares, exceto que seus valores não podem ser modificados após sua definição.
Literais inteiros
Um literal inteiro pode ser uma constante decimal, octal ou hexadecimal. Um prefixo especifica a base ou raiz: 0x ou 0X para hexadecimal, 0 para octal e nada para decimal.
Um literal inteiro também pode ter um sufixo que é uma combinação de U e L, para sem sinal e longo, respectivamente. O sufixo pode ser maiúsculo ou minúsculo e pode estar em qualquer ordem.
Aqui estão alguns exemplos de literais inteiros -
212 /* Legal */
215u /* Legal */
0xFeeL /* Legal */
078 /* Illegal: 8 is not an octal digit */
032UU /* Illegal: cannot repeat a suffix */
A seguir estão outros exemplos de vários tipos de literais inteiros -
85 /* decimal */
0213 /* octal */
0x4b /* hexadecimal */
30 /* int */
30u /* unsigned int */
30l /* long */
30ul /* unsigned long */
Literais de ponto flutuante
Um literal de ponto flutuante possui uma parte inteira, um ponto decimal, uma parte fracionária e uma parte expoente. Você pode representar literais de ponto flutuante tanto na forma decimal quanto na forma exponencial.
Ao representar a forma decimal, você deve incluir o ponto decimal, o expoente ou ambos; e enquanto representa a forma exponencial, você deve incluir a parte inteira, a parte fracionária ou ambas. O expoente assinado é introduzido por e ou E.
Aqui estão alguns exemplos de literais de ponto flutuante -
3.14159 /* Legal */
314159E-5L /* Legal */
510E /* Illegal: incomplete exponent */
210f /* Illegal: no decimal or exponent */
.e55 /* Illegal: missing integer or fraction */
Constantes de Personagem
Literais de caracteres são colocados entre aspas simples, por exemplo, 'x' pode ser armazenado em uma variável simples de char tipo.
Um literal de caractere pode ser um caractere simples (por exemplo, 'x'), uma seqüência de escape (por exemplo, '\ t') ou um caractere universal (por exemplo, '\ u02C0').
Existem certos caracteres em C que representam um significado especial quando precedidos por uma barra invertida, por exemplo, nova linha (\ n) ou tabulação (\ t).
- Aqui, você tem uma lista de tais códigos de sequência de escape -
Sequência de fuga Significado \\ \ personagem \ ' ' personagem \ " " personagem \? ? personagem \uma Alerta ou sino \ b Backspace \ f Feed de formulário \ n Nova linha \ r Retorno de carruagem \ t Aba horizontal \ v Guia vertical \ ooo Número octal de um a três dígitos \ xhh. . . Número hexadecimal de um ou mais dígitos
A seguir está o exemplo para mostrar alguns caracteres da sequência de escape -
#include <stdio.h>
int main() {
printf("Hello\tWorld\n\n");
return 0;
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Hello World
Literais de string
Literais ou constantes de string são colocados entre aspas duplas "". Uma string contém caracteres semelhantes aos literais de caracteres: caracteres simples, sequências de escape e caracteres universais.
Você pode quebrar uma linha longa em várias linhas usando literais de string e separando-as usando espaços em branco.
Aqui estão alguns exemplos de literais de string. Todas as três formas são strings idênticas.
"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"
Definindo Constantes
Existem duas maneiras simples em C de definir constantes -
Usando #define pré-processador.
Usando const palavra-chave.
O pré-processador #define
A seguir está a forma de usar o pré-processador #define para definir uma constante -
#define identifier value
O exemplo a seguir explica isso em detalhes -
#include <stdio.h>
#define LENGTH 10
#define WIDTH 5
#define NEWLINE '\n'
int main() {
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
printf("%c", NEWLINE);
return 0;
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
value of area : 50
A palavra-chave const
Você pode usar const prefixo para declarar constantes com um tipo específico da seguinte forma -
const type variable = value;
O exemplo a seguir explica isso em detalhes -
#include <stdio.h>
int main() {
const int LENGTH = 10;
const int WIDTH = 5;
const char NEWLINE = '\n';
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
printf("%c", NEWLINE);
return 0;
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
value of area : 50
Observe que é uma boa prática de programação definir constantes em MAIÚSCULAS.