Identificadores y declaración de variables en C: reglas, palabras reservadas y clases de almacenamiento

Informática y TelecomunicacionesActualizado el 7,32 KB

Resumen

El documento explica qué es un identificador en C, sus reglas de construcción y convenciones de nomenclatura, y la lista de palabras reservadas del lenguaje. Después describe cómo declarar y inicializar variables, así como las clases de almacenamiento (auto, extern, register, static), los modificadores de tipo (signed, unsigned, short, long) y los modificadores de acceso (const, volatile).

Puntos clave

  • Un identificador en C está formado por letras, dígitos y guiones bajos, y debe empezar por una letra o un guion bajo; C distingue mayúsculas de minúsculas.
  • Los identificadores no pueden coincidir con palabras reservadas como int, while o static.
  • Convención habitual: variables en minúsculas, constantes en mayúsculas y funciones en CamelCase.
  • Una variable no inicializada contiene un valor indefinido, y cada nueva asignación sobrescribe el valor anterior.
  • Las clases de almacenamiento principales son auto, extern, register y static, que definen ámbito, tiempo de vida y forma de almacenamiento.
  • Los modificadores de tipo signed, unsigned, short y long afectan al rango de valores y al espacio de memoria ocupado.
  • Los modificadores de acceso const (solo lectura tras la inicialización) y volatile (puede cambiar fuera del control del programa) limitan u orientan cómo se usa la variable.

Ponte a prueba

Identificadores en C: Nomenclatura y Reglas Esenciales

Un identificador es un nombre que hace referencia a una constante, una variable, una estructura de datos, una función o una etiqueta de programa en C. Cualquier identificador está constituido por una secuencia de letras (la 'ñ' no se considera una letra válida en C estándar), dígitos y caracteres de subrayado (_). La longitud máxima de un identificador puede variar dependiendo del procesador y del compilador, aunque comúnmente se recomienda no exceder los 31 o 32 caracteres para asegurar la portabilidad.

Características Clave de los Identificadores en C

  • Diferencian entre mayúsculas y minúsculas (case-sensitive). Por ejemplo, variable y Variable son identificadores distintos.
  • Deben comenzar por una letra (a-z, A-Z) o un guion bajo (_). No pueden empezar con un dígito.
  • Convenciones de Nomenclatura: Aunque no son reglas estrictas del compilador, se suelen seguir las siguientes convenciones para mejorar la legibilidad del código:
    • Las variables se nombran en minúsculas (ej: contador, nombreUsuario).
    • Las constantes (definidas con #define o const) se nombran en mayúsculas (ej: MAX_SIZE, PI).
    • Las funciones suelen seguir la convención CamelCase, comenzando con mayúscula (ej: CalcularSuma) o minúscula (ej: calcularSuma), dependiendo del estilo de codificación.
  • Es recomendable que el identificador sea descriptivo y refleje claramente el propósito o el tipo de dato que almacena (ej: edadPersona, temperaturaCelsius).

Los identificadores no pueden ser ninguna de las palabras reservadas del lenguaje C.

Palabras Reservadas en C

El lenguaje C cuenta con un conjunto de palabras reservadas que tienen un significado predefinido y no pueden ser utilizadas como identificadores. A continuación, se listan las 32 palabras clave estándar (en minúsculas):

  • auto
  • break
  • case
  • char
  • const
  • default
  • do
  • double
  • else
  • enum
  • extern
  • float
  • for
  • goto (su uso es generalmente desaconsejado)
  • if
  • int
  • long
  • register
  • return
  • short
  • signed
  • sizeof
  • static
  • struct
  • switch
  • typedef
  • union
  • unsigned
  • void
  • volatile
  • while

Declaración y Definición de Variables en C

Una variable es un espacio de memoria nombrado que puede almacenar un valor, el cual puede cambiar durante la ejecución del programa. Definir una variable en programación implica reservar un espacio de memoria suficiente para albergar un valor de un tipo de dato específico y asignarle un identificador único para poder referenciarlo y manipularlo.

Sintaxis Básica para la Declaración de Variables

La forma más sencilla de declarar una variable en C es la siguiente:

Tipo_de_dato nombre_variable;

Ejemplo: int edad;

Es importante destacar que, al declarar una variable, su contenido inicial es indefinido (contiene "basura" o el valor que previamente ocupaba esa posición de memoria) a menos que se inicialice explícitamente. Cada vez que se asigna un nuevo valor a una variable, el valor anterior se sobrescribe. Una variable solo puede almacenar un dato a la vez, siendo este el último valor asignado.

Formato Completo de Declaración de Variables

El formato completo para la declaración de una variable en C, incluyendo elementos opcionales (indicados entre corchetes []), es el siguiente:

[clase_de_almacenamiento] [modificador_de_tipo] tipo_de_dato identificador [= valor_inicial];

Declaración de Múltiples Variables

Para declarar varias variables del mismo tipo, se pueden listar separadas por comas:

tipo_de_dato identificador1, identificador2, ...;

Ejemplo: int x, y, z;

Inicialización de Variables

Es posible inicializar una o varias variables en el momento de su declaración:

int x, y = 67, z;

Clases de Almacenamiento

La clase de almacenamiento especifica la forma en que se almacena una variable, su ámbito (dónde es accesible) y su tiempo de vida. Las cuatro clases de almacenamiento principales en C son:

  • auto: Variables locales, creadas al entrar en un bloque y destruidas al salir. Es la clase por defecto para variables locales.
  • extern: Indica que la variable está definida en otro archivo fuente o en otra parte del mismo archivo. Permite compartir variables globales entre diferentes archivos.
  • register: Sugiere al compilador que almacene la variable en un registro de la CPU para un acceso más rápido. El compilador puede ignorar esta sugerencia.
  • static: Para variables locales, mantiene su valor entre llamadas a la función. Para variables globales, restringe su visibilidad al archivo donde están definidas.

Modificadores de Tipo

Los modificadores de tipo alteran el significado básico de un tipo de dato, afectando principalmente al rango de valores que puede almacenar y al espacio de memoria que ocupa. Los principales modificadores son:

  • signed: Indica que el tipo de dato puede almacenar valores tanto positivos como negativos. Es el valor por defecto para tipos enteros si no se especifica.
  • unsigned: Indica que el tipo de dato solo puede almacenar valores positivos (incluido el cero). Duplica el rango positivo al no usar un bit para el signo.
  • short: Sugiere que el tipo de dato ocupe el menor espacio de memoria posible, reduciendo su rango de valores. Se usa con tipos enteros (ej: short int).
  • long: Sugiere que el tipo de dato ocupe un mayor espacio de memoria, aumentando su rango de valores. Se usa con tipos enteros y de punto flotante (ej: long int, long double).

Modificadores de Acceso

Opcionalmente, la declaración de una variable puede incluir un modificador de acceso, que influye en cómo el programa puede interactuar con el valor de la variable. Los dos modificadores de acceso son:

  • const: Indica que el valor de la variable no puede ser modificado después de su inicialización. Funciona como una constante de solo lectura.
  • volatile: Indica al compilador que el valor de la variable puede ser modificado por algo fuera del control del programa (ej: hardware, otro hilo de ejecución). Esto previene optimizaciones del compilador que podrían asumir que el valor no cambia.

Descargar

PDF Word HTML

Preguntas frecuentes

¿Puede un identificador en C empezar por un número?

No. Un identificador debe comenzar por una letra (a-z, A-Z) o por un guion bajo (_), nunca por un dígito.

¿Qué ocurre con el valor de una variable que no se inicializa?

Su contenido inicial es indefinido: contiene basura o el valor que ocupaba previamente esa posición de memoria, salvo que se inicialice explícitamente.

¿Cuál es la diferencia entre const y volatile?

const indica que el valor no puede modificarse tras su inicialización, mientras que volatile indica que el valor puede cambiar por causas externas al programa, lo que evita ciertas optimizaciones del compilador.

¿Cuál es la clase de almacenamiento por defecto para las variables locales?

Es auto. Estas variables se crean al entrar en un bloque y se destruyen al salir de él.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Cuál de los siguientes es un identificador válido en C según el texto?
2. ¿Qué afirma el texto sobre la distinción entre mayúsculas y minúsculas en C?
3. ¿Qué sucede con una variable declarada pero no inicializada explícitamente?
4. ¿Qué clase de almacenamiento permite compartir una variable global entre distintos archivos fuente?
5. ¿Qué modificador de acceso impide modificar una variable tras su inicialización?
6. ¿Cuál es el efecto del modificador unsigned sobre un tipo entero?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.