Tabelas Hash Rápidas e Vetores Dinâmicos em C

2025-01-22

Este artigo mostra como implementar rapidamente em C equivalentes aos `std::unordered_map` e `std::vector` do C++. Usando um alocador personalizado, strings contadas e uma função hash eficiente, o autor apresenta implementações de tabelas hash planas e hierárquicas, além de um vetor dinâmico. O artigo também abrange concatenação de strings, manipulação de variáveis de ambiente e segurança aprimorada de tabelas hash, utilizando o Address Space Layout Randomization (ASLR) para melhorar a resistência a colisões.

Leia mais

Regras para Evitar Erros Comuns em Assembly Inline Estendido

2024-12-21

Este artigo não é um tutorial de assembly inline, mas sim um resumo de seis regras para evitar erros comuns. O autor destaca que o assembly inline é traiçoeiro e deve ser evitado sempre que possível, pois compiladores modernos oferecem intrínsecos e funções embutidas para a maioria dos casos de uso. Se inevitável, as regras são: usar o qualificador `volatile`; usar um `memory` clobber se acessar a memória; nunca modificar restrições de entrada; nunca chamar funções de assembly inline; não definir rótulos de assembly absolutos; e usar o recurso de rótulos locais do montador para evitar conflitos de rótulos. O artigo conclui incentivando os leitores a praticar a aplicação dessas regras revisando tutoriais online e até mesmo código gerado por LLM.

Leia mais
Desenvolvimento assembly inline compilador