当前位置:  开发笔记 > 编程语言 > 正文

如何有效地构建C程序

如何解决《如何有效地构建C程序》经验,为你挑选了2个好方法。

首先我要说的是,我在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语言的多年发展,某些设计模式已经发展到如何最好地构建代码以实现可维护性.与函数式编程非常相似,我希望过程式编程具有干净且可读性的范例.

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



1> Alaric..:

这是一种非常正常和明智的做法.但是尽量不要在头文件中公开struct布局,这样你就可以更灵活地实现它并更好地管理你的依赖项.

有关详细信息,请参阅不透明指针.



2> 小智..:

你所建议的是我在做这样的事情的时候总是写C程序的方式.我不认为这是"穷人的OO",我认为这是合理的程序编程实践.

我会观察一些关于你的C代码的事情:

使用带有结构定义的typedef,因此您不需要在整个代码中分散'struct'关键字

实际需要时只使用强制转换 - 来自malloc()的返回值的强制转换是不必要的

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有