Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Regla 0x0102h: Los argumentos de función y las variables locales deben usar snake_case en minúsculas

Nomenclatura e identificadores (0x01XX)

Universidad Nacional de Río Negro

0x0102h: Los argumentos de función y las variables locales deben usar snake_case en minúsculas

Enunciado normativo

DEBE nombrarse toda variable local y todo parámetro en snake_case con minúsculas y guiones bajos. NO DEBE usarse camelCase, PascalCase ni mayúsculas sueltas.

La forma uniforme hace predecible la lectura de cualquier identificador.

¿Por qué existe esta regla?

El problema

C distingue mayúsculas de minúsculas. Si cada estudiante elige su propio esquema, el código de un compañero o de la cátedra se vuelve un rompecabezas de convenciones. snake_case es el estilo dominante en el ecosistema de C y en la biblioteca estándar (strncpy, size_t), por lo que adoptarlo alinea al estudiante con el lenguaje real.

La distinción de mayúsculas también separa categorías: las minúsculas quedan para valores mutables locales, mientras mayúsculas y sufijos se reservan para constantes y tipos, respectivamente.

Consecuencias de violarla

Tipo de consecuenciaEfecto concreto
CompilaciónNinguna: miVariable y mi_variable son identificadores válidos.
LegibilidadConviven varios esquemas y el archivo pierde cohesión.
MantenibilidadLas refactorizaciones renombran de forma inconsistente.
ColisióncamelCase puede chocar con nombres de librerías o tipos.
Revisión docenteDetectar el origen de un identificador cuesta más.

Fundamento en el estándar y en la cátedra

El estándar solo exige que los identificadores comiencen con letra o guion bajo y continúen con letras, dígitos o guiones bajos (§6.4.2). La cátedra fija snake_case minúsculas para variables y argumentos, y separa así la nomenclatura de funciones (0x0105h: Los nombres de funciones deben usar snake_case estricto en minúsculas), constantes (0x0103h: Las constantes (const o #define) deben nombrarse en MAYUSCULAS_SNAKE_CASE) y tipos (0x3004h: Utilizá typedef para definir tipos de estructuras con el sufijo _t).

Alcance y excepciones

Cubre variables locales, parámetros de función y variables de archivo. No rige nombres de constantes, macros, tipos ni funciones, que tienen sus propias reglas. Los índices de iteración cortos siguen en minúsculas y se aceptan por 0x010Bh: Proporcionalidad en longitud de identificadores según su alcance.

Ejemplos exhaustivos

❌ Contraejemplo 1 — Firma en camelCase

int calcular_promedio(int *vectorNumeros, size_t LongitudTotal);

Por qué falla: vectorNumeros combina mayúsculas en medio de la palabra y LongitudTotal arranca en mayúscula, dos estilos distintos en la misma firma.

❌ Contraejemplo 2 — Variables locales mezcladas

int totalVentas = 0;
int descuento_Aplicado = 0;
int IVA = 21;

Por qué falla: convive camelCase, mayúscula suelta y un guion bajo inconsistente; además IVA parece una constante y no lo es.

✅ Ejemplo conforme 1 — Firma consistente

int calcular_promedio(int *vector_numeros, size_t longitud_total);

Justificación: cada palabra se separa con guion bajo y todas van en minúscula, de modo que el nombre se lee como una frase.

✅ Ejemplo conforme 2 — Locales coherentes

int total_ventas = 0;
int descuento_aplicado = 0;
const int ALICUOTA_IVA = 21;

Justificación: las variables mutables usan snake_case y la constante usa mayúsculas; la categoría de cada valor se distingue a simple vista.

⚠️ Casos límite

Cómo detectarla

HerramientaComandoSeñal
Revisión manualMayúsculas en variables locales o parámetros.
gaffgaff check archivo.cRegla 0x0102h: identificador fuera de snake_case.
grepgrep -nP '[a-z][A-Z]' archivo.cPosibles ocurrencias de camelCase.

Checklist de autocontrol

Reglas relacionadas