如何有效地构造一个C程序

让我先说我在C和C都有相当多的经验。然而,我在C开始一个新的项目,我一直在面向对象语言工作了这么长时间(C#和C),我无法想出一个有效的方式封装在过程语言的功能。我的第一个想法是简单地回到我的OO知识和结构它像:

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多年的发展,某些设计模式已经开发了如何最好地构建代码的可维护性。很像函数式编程,我希望过程式编程有一个干净,可读的范例。

指向相关文章和书籍的指针也是可以接受的。

这是一个相当正常和明智的做法。但是尽量不要在头文件中暴露struct布局,这样你就可以更灵活地实现和管理依赖。

有关详细信息,请参阅Opaque pointer

http://stackoverflow.com/questions/961781/how-to-structure-a-c-program-effectively

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何有效地构造一个C程序