C言語は基本的な機能を持ち、ジェネリクスを「サポートしていない」と一般的に考えられていますが、実際には既存のツールを使って簡単に実装できます。本記事では、C言語における型安全なジェネリクスの実装方法について説明しています。具体的には、関数ライクマクロやvoidポインターを用いた方法、それぞれの利点と欠点を挙げた後、著者が推奨する方式を紹介しています。この推奨方式は、型消去に依存せず、マクロによるラップを最小限に抑えることで、使用感が良く、既存のツールとの互換性も高いです。また、ヘッダーのインスタンシエーションを用いた方法についても触れ、型名の指定やカスタムサフィックスの扱い方を詳しく解説しています。記事の終わりでは、実際のジェネリック関数の実装例も示されています。