当我编译一个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""在最顶层.
我想我得到的一点是,所有这些东西都有效,选择一种方法听起来对任何不了解背景的人来说都是随意的(我).请告诉我为什么和什么.
虽然您的程序很小,但这样可行.但是,在某些时候,你的程序将变得足够大,每次你改变一行时重新编译整个程序是后方的痛苦.
这甚至不仅仅是避免编辑大文件 - 是分割程序的原因.如果将main.c和util.c单独编译为目标文件,则在main.c中更改函数中的一行将不再需要重新编译util.c中的所有代码.
当你的程序由几十个文件组成时,这将是一个巨大的胜利.