Tag: 代码组织

如何正确拆分文件中的C程序然后包含?

我组织了我的程序,将每个实体拆分为自己的文件。 这是这样的。 main.c #include “student.h” #include “subject.h” #include “classroom.h” #define PI 3.14 int sum(int a, int b); student.h typedef struct st student; student.c #include “student.h” subject.h typedef struct sb subject; subject.c #include “subject.h” classroom.h typedef struct cr classroom; classroom.c #include “classroom.h” 我的问题是,在课堂内我需要学生和科目 。 我应该怎么包括这个? 我应该在classroom.h或classroom.c中包含这个吗? #include “student.h” #include “subject.h” 其次,我在main.c上有所有东西使用的东西,比如sum()和PI 如何以正确的方式包括在头文件中实现或在实现文件中包含头文件? 我应该包括标题或实现文件? 如果我将所有内容都放在一个文件上,那么它编译得很好,但是我没有这样做,它不能编译。

为什么我们不应该在C中包含源文件

为什么将源文件包含在其他源文件中并不是一种好的做法? 更好的方法是包含头文件。 这种方法有什么好处,反之亦然? 请原谅我糟糕的英语。

关于在C中组织代码文件的最佳文章

您能否推荐我应该阅读/学习什么才能在C中制作组织良好的代码? 我想要学习的一件事是在.h和.c文件中拆分项目的原则,在哪里和为什么,变量命名,何时使用全局变量… 我对处理这个特定问题的书籍和文章很感兴趣。

是否有帮助组织#includes的工具?

是否有任何工具可以帮助组织属于.c或.h文件顶部的#include ? 我只是想知道因为我正在重新组织我的代码,将各种小函数定义/声明从一个长文件移动到不同的较小文件中。 现在,每个较小的文件都需要位于long文件顶部的#include的子集。 手动弄清楚所有#includes只是烦人且容易出错。 虽然并非所有的#include都存在,但代码通常会编译。 示例:文件A广泛使用std::vector但不包含vector ; 但它目前包括一些不起眼的其他标题,恰好包括vector (可能通过一些递归包含)。

何时将静态函数定义放在C中的头文件中?

我遇到了一些在头文件中有一个大的静态函数的代码,我只是好奇它什么时候/它不好。 例如,如果许多.c文件包含标题,为什么不直接定义非静态函数并将其链接? 关于何时/何时不将静态函数定义放在C中的头文件中的任何建议或经验法则,我们将不胜感激, 谢谢