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 0x0008h: Alineación vertical consistente en asignaciones y declaraciones consecutivas

Sintaxis y formato visual (0x00XX)

Universidad Nacional de Río Negro

0x0008h: Alineación vertical consistente en asignaciones y declaraciones consecutivas

Enunciado normativo

DEBE mantenerse una alineación uniforme en bloques de tres o más declaraciones o asignaciones consecutivas, todas al mismo nivel de sangría. NO DEBE introducirse indentaciones dispares dentro del mismo bloque.

La corrección automática normaliza la sangría de estos bloques.

¿Por qué existe esta regla?

El problema

Una declaración con un espacio de más o de menos rompe la columna por la que el ojo recorre el bloque. El lector interpreta la línea desalineada como perteneciente a un nivel de anidación distinto y se equivoca al leer el alcance. Un bloque de asignaciones consecutivas debe verse como una rejilla: todas las líneas comparten la misma columna inicial.

Esta regla es la versión vertical de 0x0004h: Cada bloque debe tener una indentación de cuatro espacios respecto a su contenedor y llaves: aquella fija el ancho de un nivel; esta verifica que líneas hermanas no queden a distinta altura.

Consecuencias de violarla

Tipo de consecuenciaEfecto concreto
CompilaciónNinguna: la sangría es irrelevante para el compilador.
LegibilidadLas líneas desalineadas simulan una jerarquía que no existe.
MantenibilidadAgregar o quitar una línea obliga a realinear manualmente.
RevisiónParece código movido cuando no hubo cambio lógico.
ConsistenciaEl bloque pierde la estructura de rejilla.

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

El estándar ignora el espaciado (§6.4). La cátedra exige bloques de declaraciones y asignaciones alineados para que la estructura sea predictable y para que la corrección automática pueda normalizarlos sin ambigüedad.

Alcance y excepciones

Aplica a tres o más declaraciones o asignaciones consecutivas. Una línea de continuación de una expresión larga se alinea según 0x0004h: Cada bloque debe tener una indentación de cuatro espacios respecto a su contenedor y llaves y 0x0006h: Las líneas de código no deben exceder los 79 caracteres, no según esta regla. La alineación de los signos = con espacios extra está prohibida por 0x000Fh: Prohibición de múltiples espacios en blanco consecutivos dentro de una línea de código: lo que se alinea es la indentación, no las columnas del operador.

Ejemplos exhaustivos

❌ Contraejemplo 1 — Escalera de indentaciones

int a = 1;
  int b = 2;
    int c = 3;

Por qué falla: cada línea parece anidar dentro de la anterior, pero las tres son hermanas; la falsa jerarquía induce a error al leer el alcance.

❌ Contraejemplo 2 — Bloque roto por un espacio

int filas = 3;
int columnas = 4;
 int total = filas * columnas;

Por qué falla: la tercera línea pierde la columna de las anteriores y el bloque deja de verse como una unidad.

✅ Ejemplo conforme 1 — Rejilla uniforme

int a = 1;
int b = 2;
int c = 3;

Justificación: todas las líneas arrancan en la misma columna y el bloque se lee como una lista.

✅ Ejemplo conforme 2 — Asignaciones consecutivas

filas = obtener_filas();
columnas = obtener_columnas();
total = filas * columnas;

Justificación: la sangría es idéntica y el único espaciado variable está alrededor de los operadores, regulado por 0x0003h: Un espacio antes y después de cada operador binario.

⚠️ Casos límite

Cómo detectarla

HerramientaComandoSeñal
gaffgaff check archivo.c / gaff fix archivo.cSangría dispar en declaraciones consecutivas.
EditorGuías de indentaciónLíneas fuera de la columna del bloque.
grepgrep -nE '^ +' archivo.cIndentaciones inusuales.

Checklist de autocontrol

Reglas relacionadas