カプセル化:
C言語において、このカプセル化はファイルの分割とstatic変数&static関数で実現することができます。
一つのモジュールをそれぞれの.cファイルと.hファイルに分割し、そのファイルのみで使用するグローバル変数や関数をstatic宣言します。
このようにstaic宣言することにより、変数や関数のスコープをそのファイル(モジュール)のみに限定することができるのです。
多態性:
C言語でこれを実現するためには、インターフェースとなる共通の関数ポインタを格納した構造体を作成し、その構造体に格納する関数ポインタをオブジェクト毎に切り替えることにより、多様性を実現します。
継承:
これは、構造体の中にスーパークラスのオブジェクトを含めることで実現できます。この方法はどちらかというと委譲という方法に近いですが、共通部分を括りだすという目的は実現できます。