结构化C应用程序?
我计划用C语言开发一个应用程序。我的编程经验一直是使用面向对象语言。因此,在设计应用程序时,我总是考虑类、接口、继承、多态性等 我看过的所有C语言书籍都是关于如何用C语言编程的,或者专注于一个特定的主题,我找不到任何关于C语言应用程序体系结构的书籍。那么,当OOP功能不可用时,如何构造C应用程序呢?您如何使所有内容都模块化、井然有序,并避免代码重复(没有OOP,似乎会有大量代码重复) 编辑:结构化C应用程序?,c,architecture,C,Architecture,我计划用C语言开发一个应用程序。我的编程经验一直是使用面向对象语言。因此,在设计应用程序时,我总是考虑类、接口、继承、多态性等 我看过的所有C语言书籍都是关于如何用C语言编程的,或者专注于一个特定的主题,我找不到任何关于C语言应用程序体系结构的书籍。那么,当OOP功能不可用时,如何构造C应用程序呢?您如何使所有内容都模块化、井然有序,并避免代码重复(没有OOP,似乎会有大量代码重复) 编辑: 我不是在寻找关于“如何用C编写OOP代码”的答案。我正在寻找构造C应用程序的标准实践方法,使其模块化且组
我不是在寻找关于“如何用C编写OOP代码”的答案。我正在寻找构造C应用程序的标准实践方法,使其模块化且组织良好。如果标准的实践方法是破解一些OOP特性,那么这就足够了,但如果不是这样,那么就没有必要告诉我沿着这条路线走下去。您可以将C项目设计为面向对象项目,然后用结构替换类。这是在本书和本书中向我推荐的,为了创建可重用的C软件,请阅读David R.Hanson的这本书
基本OOP最好使用Alex Schriner的书中提到的技术,这是一种不同的思维方式。C的核心理念可以概括为:
data + algorithms = programs
因此,要用C语言设计应用程序:
struct
s,并促进数据上不同视图之间的关系结构
s,并有助于显示应该将哪些块组合在一起以创建可重用的代码块struct
+One.c file=class,并将结构定义和外部可访问函数(公共方法)放入.h文件中首先,您将确定解决问题的组件及其交互。 然后在每个组件中,可以使用以下实践
可以使用C练习TDD,请参阅
如果您习惯于练习TDD,您知道它将帮助您保持代码的良好组织和模块化 在美国华盛顿州雷德蒙(Redmond,WA,98052)没有微软的
1方法。但这有什么关系呢?@AlexeyFrunze嗯,我的意思是没有任何特定标准中定义的构造C程序的“标准实践”。这是我发明的一个比喻:-这是编写C应用程序的标准实践吗?我不想执行一些黑客行为,这样我就可以“在某种程度上使用C语言中的对象”。我想以标准的最佳实践风格开发C应用程序。你推荐的是用C语言做事情的标准方法吗?@csss虽然在用C语言编程时没有标准的推荐程序,但这门艺术是随着时间的推移而发展的。我提到的《C接口和实现》一书教你如何做到这一点。上面的链接甚至这个链接提出了一种设计C应用程序的方法,这种方法接近于面向对象的项目设计——这不是一种黑客行为。否则,你可以使用C++来代替这个页面上的第一个答案:用C做OOP是“乏味的,不是完全可取的”——如果它是“不明智的”,我就不认为它是最佳实践。CSS如果你想做C++已经做的(过去也是),那就是C++中的面向对象编程,那么它是错误的。但是,您可以像基于对象的编程语言一样编程C,并解决许多问题。代码复制从来都不是问题——为什么会是这样?所有好的C程序都是用函数编程的,一个函数一个任务。2函数2作业..没有读过这本书,但已经看过了示例。一般来说,它看起来不错,但我认为使用defines替换type有点可疑。