# Progreso ## Estado actual - **Fase 1** — Estructura del proyecto. - Paso actual: Makefile. Hecho: reglas con dependencias correctas, variables CC/CFLAGS/CPPFLAGS, clean, .PHONY, cero warnings con gcc y clang. Siguiente: .gitignore y carpeta build/ en un clon limpio; después reglas patrón. - Entorno activo: Fedora 42 nativo (gcc 15.2, clang 20, make 4.4, gdb 17, valgrind 3.26). ## Hecho - `include/escpos.h` + `src/escpos.c` con `escpos_version()`, y `hello.c` que la usa. Compila y enlaza a mano en Windows y en Fedora. - `samples/hello_world.bin`: ESC @, texto, LF, ESC d 5, GS V 0. - Emulador ESC/POS en Go (`emulator/`) para probar sin gastar papel. ## Conceptos de C aprendidos - Etapas de compilación, unidades de traducción, cabeceras, *include guards*, `static` para encapsular, `nm` y errores del enlazador. - Cadenas terminadas en `'\0'`, `const char *`. - Memoria virtual de un proceso, modo usuario y modo núcleo. ## Decisiones de diseño - Prefijo `escpos_` para toda la API pública. ## Pendiente / puntos débiles - Hay binarios (`.o`, `.exe`) versionados en git. Falta `.gitignore`. - Ficheros sin salto de línea final: corregido; editor configurado. - Impresoras físicas: sin registrar marca y modelo.