在C中规划和组织应用程序开发的最佳方法是什么?

我只需要在C中编码几次,而且似乎每次都这样做,它就变成了一些无法管理的野兽。

我已经在C#和.Net中完成了大部分编程,因此我非常习惯于类风格的体系结构,但我似乎无法掌握C语言应用程序中的组织。 我应该把函数定义放在一个文件中,将函数定义放在一个文件中,然后在另一个文件中处理,等等。这个主题有没有什么好的资源?

另请参阅: 使用来自面向对象的土地的C苦苦挣扎?

这是一个可能对您有所帮助的类比:

类是一种数据结构,是一组访问和操作数据的函数。 c语言没有为你组织这种关系提供任何合成糖,但你仍然可以围绕这个想法构建你的代码。 所以,就这样做:设计你围绕一堆“类”进行设计。

代码组织通常采用以下两种forms之一:

  • 每个函数都有一个扩展名为.h头(接口)文件和一个扩展名为.c实现文件
  • 每个“类”(即一组相关函数)获得一个头文件和一个实现文件。

所以,你已经知道如何做到这一点……

David Hanson的C接口和实现在第一章中解释了一个很好的可用组织方案(如果我没记错的话),并在其余的开发大量库中使用它。

编程 C程序的旧“ 结构化编程 ”方法是将它们模块化为文件。 不要在对象中包含代码,请确保将所有相关代码放入单个文件中。

如果你认为一个文件是一个穷人的对象,那么你将主要用于组织你的C应用程序,就像你使用C#那样。

由于有C#经验,您可能对我的SO问题的回答感兴趣:“ C中的面向对象 ”。 如果他们感兴趣,那么查看对相关问题的回答可能是有用的:“ 你能用c编写面向对象的代码吗? ”。 如果您计划使用与上述问题的答案中提到的任何方案一样的方案,请记住,最重要的是您的设计, 而不是可能/可能不会使其看起来漂亮的语法糖。