<分区>
我知道一些高级语言,都是基于网络的(PHP、javascript、一些 python)。我最终决定学习一门较低级的语言,并且我决定学习 C。问题是我使用的所有语言都在很大程度上基于 OOP。鉴于(基于我所做的研究)C 没有类或继承。因此,我问你这个问题:我应该如何像 OOP 一样以有组织的方式组织我的 C 代码,而不必切换语言或只拥有包含无穷无尽函数的文件?
从 future 编辑:这个问题回想起来很愚蠢。我当时 15 岁,学校里没有 CS...
<分区>
我知道一些高级语言,都是基于网络的(PHP、javascript、一些 python)。我最终决定学习一门较低级的语言,并且我决定学习 C。问题是我使用的所有语言都在很大程度上基于 OOP。鉴于(基于我所做的研究)C 没有类或继承。因此,我问你这个问题:我应该如何像 OOP 一样以有组织的方式组织我的 C 代码,而不必切换语言或只拥有包含无穷无尽函数的文件?
从 future 编辑:这个问题回想起来很愚蠢。我当时 15 岁,学校里没有 CS...
最佳答案
C 在代码组织方面提供的不多。有函数和文件。
每当你想实现一个带有隐藏实现的接口(interface),或者可能带有私有(private)函数时,创建两个文件,比如“foo.h”和“foo.c”。
接口(interface)和/或公共(public)函数是“foo.h”中的函数原型(prototype),函数写在“foo.c”中。此外,任何隐藏实现或其他私有(private)函数都在“foo.c”中,但标记为static
,例如static int foo_internal_function(int i);
。标记为 static
的函数只能在它们所在的文件中引用,而不能在任何其他文件中引用。
没有正式的命名空间,尽管您可以使用前缀函数名称获得大致相同的效果,例如 Foo_discombobulate_developers()
。没有类,尽管您至少可以通过文件获得一些封装效果。没有可扩展的层次结构,只有文件和函数。
C 与后来的语言的组织结构相去甚远,但是用它编写了许多非常好的程序。小心,注释任何令人困惑的东西(在 C 中很可能有令人困惑的东西),并做好笔记。
关于C的代码组织风格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1479574/