まず、CとC++の両方でかなりの量の経験があるとしましょう。しかし、私はCで新しいプロジェクトを開始しています。オブジェクト指向言語で長い間(C#とC++)作業してきましたが、手続き型言語で機能をカプセル化する効果的な方法を考え出すのに問題があります。私が最初に考えたのは、単に私のOOの知識や構造、それを上の背中のような何か落ちた:Cプログラムを効果的に構築する方法
struct Foo
{
int x;
char *y;
};
struct Foo *new_Foo()
{
return (struct Foo *)malloc(sizeof(struct Foo));
}
void Foo_member_function(struct Foo *foo, int z)
{
foo->x = z;
}
をしかし、それはちょうどそれが貧しい人のOOであることは言うまでもありませんC.の精神に退屈とは逆らしいです。
このプログラムは最終的にはかなり大きなものになるので、良い設計組織から出発することが重要です。私はC言語で長年の開発をしていると思いますが、保守性のためにコードを最適に構築するための設計パターンがいくつか開発されています。関数型プログラミングと同様に、私は、手続き型プログラミングにはクリーンで公正なパラダイムが望まれます。
関連記事や書籍へのポインタも同様です。
すべてが役に立つチープビットを持っているので、1つの答えを選ぶのは嫌ですが、不透明ポインタの参照はおそらく私が気づいていない最も有用なものでした。ありがとう! – HVS