C - Constantes y literales

Las constantes se refieren a valores fijos que el programa no puede alterar durante su ejecución. Estos valores fijos también se denominanliterals.

Las constantes pueden ser de cualquiera de los tipos de datos básicos, como una constante entera, una constante flotante, una constante de carácter o una cadena literal . También hay constantes de enumeración.

Las constantes se tratan como variables regulares excepto que sus valores no se pueden modificar después de su definición.

Literales enteros

Un literal entero puede ser una constante decimal, octal o hexadecimal. Un prefijo especifica la base o la raíz: 0x o 0X para hexadecimal, 0 para octal y nada para decimal.

Un literal entero también puede tener un sufijo que sea una combinación de U y L, para unsigned y long, respectivamente. El sufijo puede estar en mayúsculas o minúsculas y puede estar en cualquier orden.

Aquí hay algunos ejemplos de literales enteros:

212         /* Legal */
215u        /* Legal */
0xFeeL      /* Legal */
078         /* Illegal: 8 is not an octal digit */
032UU       /* Illegal: cannot repeat a suffix */

A continuación se muestran otros ejemplos de varios tipos de literales enteros:

85         /* decimal */
0213       /* octal */
0x4b       /* hexadecimal */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */

Literales de coma flotante

Un literal de coma flotante tiene una parte entera, una coma decimal, una parte fraccionaria y una parte exponente. Puede representar literales de coma flotante en forma decimal o exponencial.

Mientras representa la forma decimal, debe incluir el punto decimal, el exponente o ambos; y mientras representa la forma exponencial, debe incluir la parte entera, la parte fraccionaria o ambas. El exponente con signo se introduce mediante e o E.

Aquí hay algunos ejemplos de literales de punto flotante:

3.14159       /* Legal */
314159E-5L    /* Legal */
510E          /* Illegal: incomplete exponent */
210f          /* Illegal: no decimal or exponent */
.e55          /* Illegal: missing integer or fraction */

Constantes de carácter

Los literales de caracteres se encierran entre comillas simples, por ejemplo, 'x' se puede almacenar en una variable simple de char tipo.

Un literal de carácter puede ser un carácter simple (por ejemplo, 'x'), una secuencia de escape (por ejemplo, '\ t') o un carácter universal (por ejemplo, '\ u02C0').

Hay ciertos caracteres en C que representan un significado especial cuando están precedidos por una barra invertida, por ejemplo, nueva línea (\ n) o tabulación (\ t).

  • Aquí tienes una lista de dichos códigos de secuencia de escape:
      Secuencia de escape Sentido
      \\ \ personaje
      \ ' ' personaje
      \ " " personaje
      \? ? personaje
      \un Alerta o campana
      \segundo Retroceso
      \F Alimentación de formulario
      \norte Nueva línea
      \ r Retorno de carro
      \ t Pestaña horizontal
      \ v Pestaña vertical
      \ ooo Número octal de uno a tres dígitos
      \ xhh. . . Número hexadecimal de uno o más dígitos

A continuación se muestra el ejemplo para mostrar algunos caracteres de secuencia de escape:

#include <stdio.h>

int main() {
   printf("Hello\tWorld\n\n");

   return 0;
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

Hello World

Literales de cadena

Los literales o constantes de cadena se incluyen entre comillas dobles "". Una cadena contiene caracteres que son similares a los literales de caracteres: caracteres simples, secuencias de escape y caracteres universales.

Puede dividir una línea larga en varias líneas usando cadenas literales y separándolas con espacios en blanco.

A continuación, se muestran algunos ejemplos de cadenas literales. Las tres formas son cadenas idénticas.

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

Definición de constantes

Hay dos formas sencillas en C para definir constantes:

  • Utilizando #define preprocesador.

  • Utilizando const palabra clave.

El preprocesador #define

A continuación se muestra la forma para usar #define preprocessor para definir una constante -

#define identifier value

El siguiente ejemplo lo explica en detalle:

#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;
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

value of area : 50

La palabra clave const

Puedes usar const prefijo para declarar constantes con un tipo específico de la siguiente manera:

const type variable = value;

El siguiente ejemplo lo explica en detalle:

#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;
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

value of area : 50

Tenga en cuenta que es una buena práctica de programación definir constantes en MAYÚSCULAS.