Personal library for C applications
Find a file
2025-04-19 15:00:59 +02:00
.github/workflows Add github action to ctest lib 2025-04-18 12:50:59 +02:00
include/htd Add dynamic array functionality 2025-04-19 14:59:45 +02:00
src/data_structure Make dynamic array shrink on removal 2025-04-19 15:00:59 +02:00
tests Add dynamic array functionality 2025-04-19 14:59:45 +02:00
.gitignore Add primitives, hash map and dynamic array 2025-04-17 09:53:37 +02:00
cmake_uninstall.cmake.in Add install and uninstall target 2025-04-17 10:01:35 +02:00
CMakeLists.txt Add better hmap compacting 2025-04-19 10:46:46 +02:00
README.md Improve hashmap performance 2025-04-18 00:46:05 +02:00

Personal library for C

Features

Primitives

Use shorter more concise names for common C types.

  • i8: 8-bit signed integer
  • u8: 8-bit unsigned integer
  • i16: 16-bit signed integer
  • u16: 16-bit unsigned integer
  • i32: 32-bit signed integer
  • u32: 32-bit unsigned integer
  • i64: 64-bit signed integer
  • u64: 64-bit unsigned integer
  • f32: 32-bit floating point
  • f64: 64-bit floating point
  • usize: Unsigned integer of the same size as a pointer
  • isize: Signed integer of the same size as a pointer

Data structures

  • Dynamic array: A dynamic array that can grow and shrink in size.
  • Hash map: A hash map that uses murmur3, open addressing (double hashing) and tombstone deletion.

Building

mkdir build
cd build
cmake ..
make

Testing

cd build
ctest

Installing

cd build
make install

Uninstalling

cd build
make uninstall