当我编译一个 C 程序时,为方便起见,我一直在最后包含某个标头的源文件。因此,如果 main.c 包含 util.h,则 util.h 将包含 util.c 将使用的所有头文件、概述类型或结构等,然后在最后包含 util.c。然后,当我编译时,我只需要使用 gcc main.c -o main,其余的都处理好了。
我一直在查找 C 编码标准,试图找出做事的最佳方式是什么,但有这么多,这么多相互矛盾的意见,我不知道该怎么想。为什么这么多地方建议单独编译目标文件而不是将它们全部包含在网络中?util 除了 util.c 之外从不触及任何东西,所以两者是完全独立的,理论上(我的理论)会很好,但我可能错了,因为这是计算机科学,即使他们是对的,人们也会错,所以如果我已经错了,我可能错了。
有人说头文件应该只是原型,源文件是包含它的文件,它是必要的系统头文件。从纯粹美学的角度来看,我更喜欢在标题(在本例中为 util.h)中包含所有信息(类型、使用的系统标题、原型),并且在 util.c 中只有功能代码(不包括一个“#include” util.h"" 在最顶部)。
我想我的意思是,在所有这些东西都有效的情况下,选择一种方法对于不了解背景的人(我)来说听起来很随意。请告诉我为什么和什么。