Files
printer-driver/docs/README.md
T
2026-10-02 11:36:59 +02:00

39 lines
2.2 KiB
Markdown

# Apuntes
Ordenados por tema, en el orden en que se ven en el proyecto.
1. [Compilación y enlazado](01-compilation-and-linking.md): etapas de gcc,
cómo compila Go, empezar por cualquier etapa (`.i`, `-save-temps`), qué
hay dentro de un `.i`, unidades de traducción, por qué basta la declaración
para compilar, cabeceras e `#include`, encapsulación y tipos opacos, *include guards*,
flags, qué ve quien recibe los binarios, `nm` y errores del enlazador.
2. [Punteros y cadenas](02-pointers-and-strings.md): cadenas terminadas en
`'\0'`, `const char *`, los dos significados de `*`, dónde va el `*`,
nombres de parámetros, paso por valor frente a puntero y el formato de
`printf`.
3. [La memoria de un proceso](03-process-memory.md): memoria virtual, fallos
de página, modo usuario y modo núcleo, llamadas al sistema, cómo se lee la
memoria de otro proceso, y por qué el peligro real está en la tuya.
4. [Go con mentalidad de C](04-go-with-c-mindset.md): benchmark de dos
estilos, reservas de memoria, padding, slices que comparten memoria,
dinero en float y el precio de la versión rápida.
5. [Frameworks y librerías](05-libraries-and-frameworks.md): Qt, por qué en C
casi no hay frameworks, librerías C relevantes para el proyecto e
interfaces con punteros a función.
6. [Make](06-make.md): reglas, grafo de dependencias por fechas, variables
automáticas, reglas patrón, dependencias de cabeceras con `-MMD -MP` y
detección de Windows/Linux.
7. [Memoria dinámica](07-dynamic-memory.md): pila y montón, *escape
analysis* de Go, `malloc`/`free`/`calloc`, `sizeof *p`, `realloc` y
estrategia de crecimiento, fugas, propiedad de
los punteros y Valgrind.
8. [Structs](08-structs.md): definir frente a declarar, tipos incompletos y
tipo opaco, struct público frente a opaco, `typedef`, `uint8_t` y
`size_t`, qué tipo usar en cada caso, `.` frente a `->` e inicializadores designados.
9. [Depurar](09-debugging.md): qué es un *segfault*, código de salida 139,
`NULL` y la página 0, `free(): invalid pointer` (código 134), método para
depurar con Valgrind y los comandos mínimos de gdb.
[Chuleta de comandos](cheatsheet.md): todos los comandos usados, agrupados por
tarea.