我是新手,所以我提前感谢您的帮助和耐心。我用 C 写了一个程序,如下所示:
main.c
arpsend.h - header w/include guard for arpsend.c functions
arpsend.c - includes <net/if.h>, <pthread.h>, etc.
arprec.h - header w/include guard for arprec.c functions
arprec.c - includes <net/if.h>, <pthread.h>, etc.
arpsend 和 arprec 文件使用许多相同的内核库函数和定义。我注意到,当我编写 arprec.c 代码时,我的程序大小猛增。它比我的代码应该有的膨胀得多。这使我得出结论,arpsend.c 和 arprec.c 都在各自的 .c 文件中链接了它们自己需要的 linux 库代码。链接对于项目来说是多余的,但对于每个 .c 文件都是必需的。
我的问题如下:
如果我添加到项目中的每个 .c 文件都会因为内核和标准库冗余而像这样膨胀,那么每个程序不会变得不必要地膨胀吗?我的示例中的膨胀可能是微不足道的(~12k),但我只能想象如果我需要在几个不同的 .c 文件中使用一些图形库会发生的那种膨胀。
有没有办法避免这种情况?
推荐的解决方案是将使用相同内核代码的所有函数简单地保存在一个文件中吗?
如果#3 是正确的,这难道不会破坏保持代码整洁的意义吗?它是 C,所以它不是真正的 OOP,但我想将我的代码展开,以便我可以轻松地看到项目的构成。
如果这是多余的,我深表歉意。我在这里浏览了几个小时的论坛。我找不到我的确切问题。再次感谢你的帮助