Teknik generik aman-tipe di C dicapai dengan menggunakan union yang menyimpan payload tipe hanya untuk pengecekan compile-time.
Penulis mengilustrasikan empat level generik: header dengan macros, void*, inline storage fleksibel array, dan pengecekan tipe menggunakan union dan __typeof__.
Level 0 (macro headers) aman-tipe tapi menghasilkan fungsi tipe-spesifik, memperbesar binary dan menyulitkan IDE.
Level 1 (void*) tidak aman-tipe dan memerlukan dua alokasi serta dapat menimbulkan cache miss.
Level 2 (inline storage) menggabungkan node dan data dalam satu alokasi menggunakan flexible array member untuk efisiensi memori dan cache.
Level 3 (type checking) memanfaatkan union dan typeof untuk memaksa compiler menolak penambahan data dengan tipe yang salah.
Teknik ini juga dapat diterapkan untuk struktur data lain, seperti hash map dengan dua parameter tipe.
Get notified when new stories are published for "🇮🇩 Hacker News Bahasa Indonesia"