C的代码组织风格?

标签 c oop structure

<分区>

我知道一些高级语言,都是基于网络的(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/

相关文章:

java - Try-catch 在执行 SQL 查询时忽略变量的赋值

java - 继承不允许我创建子类的对象?

c - 有什么简单的方法可以在for循环中找到结构成员的大小

C:使用缓冲区扫描来自终端的输入

c - 结构数组和 sizeof

c - 在 C 中使用 scanf 接受用户提供的尽可能多的输入

java - 这段java继承代码有什么问题?

c - char 和 scanf_s() 遇到问题

matlab - 如何将 1 个结构字段保存到另一个已保存的结构及其字段中

c - 如何在没有未对齐模式的情况下访问压缩结构中的变量?