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 0x0006h: Las líneas de código no deben exceder los 79 caracteres

Sintaxis y formato visual (0x00XX)

Universidad Nacional de Río Negro

0x0006h: Las líneas de código no deben exceder los 79 caracteres

Enunciado normativo

NO DEBE escribirse ninguna línea de código que supere los 79 caracteres (columna 80). Las líneas largas deben partirse en continuaciones explícitas.

El límite se cuenta incluyendo la indentación.

¿Por qué existe esta regla?

El problema

Toda línea que no entra en la pantalla obliga a desplazarse horizontalmente, y con el desplazamiento se pierde la referencia de la columna cero, que es justamente la que muestra el nivel de anidación. Leer código es comparar columnas: si la línea se corta, la comparación se rompe.

El límite de 80 columnas proviene de los terminales y se consolidó como estándar de facto en proyectos como el kernel de Linux. Además, las guías de estilo y los diff lado a lado asumen ese ancho.

Consecuencias de violarla

Tipo de consecuenciaEfecto concreto
CompilaciónNinguna: el compilador acepta líneas de miles de caracteres.
PortabilidadEl estándar garantiza soporte hasta 4095 caracteres por línea lógica (§5.2.4.1).
LegibilidadDesplazamiento horizontal y pérdida de las columnas de anidación.
RevisiónLos diff y las revisiones en paralelo se vuelven ilegibles.
ImpresiónEl código sale cortado o con fuentes diminutas.

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

El estándar C11 impone un mínimo de 4095 caracteres por línea lógica (§5.2.4.1), muy por encima de 79; el límite es una convención de estilo, no una obligación del lenguaje. La cátedra lo adopta para que el código quepa en terminales estándar y para forzar la descomposición de expresiones complejas.

Alcance y excepciones

Aplica a todo el texto fuente: código, comentarios e incluso las líneas de preprocesador (salvo una única macro inevitable). Las cadenas literales largas se parten con concatenación implícita; las URLs dentro de comentarios también deben partirse.

Ejemplos exhaustivos

❌ Contraejemplo 1 — Cadena larguísima

printf("Este es un mensaje de texto extremadamente largo que supera los ochenta caracteres en una sola línea.\n");

Por qué falla: la instrucción ocupa más de 100 columnas y el final se pierde fuera de la pantalla, ocultando el \n y el cierre de la llamada.

❌ Contraejemplo 2 — Condición anidada sin cortes

if (usuario_activo && tiene_permisos && saldo_disponible >= monto_solicitado && !modo_mantenimiento)
{
    aprobar();
}

Por qué falla: la condición entera no entra en pantalla y, peor, mezcla operadores lógicos sin paréntesis aclaratorios (0x1013h: Detector de expresiones booleanas complejas sin paréntesis aclaratorios).

✅ Ejemplo conforme 1 — Cadena partida

printf("Mensaje largo dividido "
       "en dos líneas continuas.\n");

Justificación: la concatenación implícita de literales adyacentes mantiene el texto original y cada línea entra en 79 columnas.

✅ Ejemplo conforme 2 — Condición descompuesta

bool puede_aprobar = usuario_activo
                     && tiene_permisos
                     && saldo_disponible >= monto_solicitado
                     && !modo_mantenimiento;

if (puede_aprobar)
{
    aprobar();
}

Justificación: cada término vive en su línea, alineado bajo el primero, y el nombre puede_aprobar documenta la condición compuesta.

⚠️ Casos límite

Cómo detectarla

HerramientaComandoSeñal
gaffgaff check archivo.cLínea con más de 79 caracteres.
awkawk 'length > 79 {print FNR": "length}' archivo.cNúmero de línea y longitud excedida.
EditorRegla en columna 80Indicador visual del límite.

Checklist de autocontrol

Reglas relacionadas