首先讓我說我在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;
}
但是,這似乎只是單調乏味的,違反C.精神更何況,這是一種窮人的OO。
這個程序最終會變得相當大,所以從一個好的設計組織開始是至關重要的。我想象着在C開發多年的過程中,某些設計模式已經在如何最好地構建可維護性代碼方面發展。就像函數式編程一樣,我希望過程式編程有一個清晰可讀的範例。
指向相關文章和書籍也是可以接受的。
我討厭只選擇一個答案,因爲它們都具有有用的花絮,但不透明指針引用可能是最有用的東西,我是不知道的。謝謝! – HVS 2009-06-07 13:04:35