C言語での配列処理はつらいよ

最近、通信用に使う暗号化パケットを生成するライブラリを組んでいた。
アルゴリズム
圧縮したデータを特定のサイズ毎に分割してハッシュ値をつけてその後暗号化かけて出力するというものだ。
しかし、でかいファイルを扱う場合、いちいちメモリにロードして圧縮かけて暗号かかけて・・・と、書いてやるのが面倒に感じた。そう、圧縮エンジン、および暗号化エンジンの入力出力がメモリからしかできないようになっていた。*1
これでは何かと不便だ。ちなみにC++で行う場合、templateでもいいし抽象クラスつくってでもいいが、書くところが少ない分楽にコーディングできる。
配列部分でmemcpyや代入している部分にクラスに宣言されているwriteとかreadに代えるだけですぐにその機構が出来上がる。
こんなに簡単なことは無い。
C言語で実装する場合はオブジェクト構造体を作って内部にフラグもたせてswitchでいちいち分岐しなければならない。*2こんなに面倒なことは無い。

そういえば、何故、C言語のライブラリなんて作っているのだろうか・・・
これには昔々にあったとある事件が原因である・・・これは追って書いていこうと思う。

*1:実装はC言語。また、ファイル全体を見て圧縮する場合などメモリに展開できない量のデータを扱うことが出来ない。

*2:関数のポインタでもかまわないが、最近のPCの場合は分岐のほうが速い