Tablas Hash Rápidas y Arreglos Dinámicos en C

2025-01-22

Este artículo muestra cómo implementar rápidamente en C equivalentes a `std::unordered_map` y `std::vector` de C++. Utilizando un asignador personalizado, cadenas contadas y una función hash eficiente, el autor presenta implementaciones de tablas hash planas y jerárquicas, junto con un arreglo dinámico. El artículo también cubre la concatenación de cadenas, la manipulación de variables de entorno y la seguridad mejorada de las tablas hash, utilizando Address Space Layout Randomization (ASLR) para mejorar la resistencia a colisiones.

Leer más

Reglas para evitar errores comunes en ensamblador inline extendido

2024-12-21

Este artículo no es un tutorial de ensamblador inline, sino un resumen de seis reglas para evitar errores comunes. El autor destaca que el ensamblador inline es traicionero y debe evitarse siempre que sea posible, ya que los compiladores modernos ofrecen intrínsecos y funciones integradas para la mayoría de los casos de uso. Si es inevitable, las reglas son: usar el calificador `volatile`; usar un `memory` clobber si se accede a la memoria; nunca modificar las restricciones de entrada; nunca llamar a funciones desde ensamblador inline; no definir etiquetas de ensamblador absolutas; y usar la característica de etiquetas locales del ensamblador para evitar conflictos de etiquetas. El artículo concluye animando a los lectores a practicar la aplicación de estas reglas revisando tutoriales online e incluso código generado por LLM.

Leer más
Desarrollo ensamblador inline