在C中使用头文件
我正在尝试学习C中头文件的使用。现在我在研究中发现了一些资源,但没有一个能达到预期的效果 首先,根据教程,我可以在头文件本身中编写我的函数。但我不想那样做。我想保持头文件不变,即使在接口保持不变的情况下更改了代码 对这个问题的回答提出了两种方法。首先,我可以分别编写代码和头文件,并在编译时包括它们,如下所示:在C中使用头文件,c,header-files,C,Header Files,我正在尝试学习C中头文件的使用。现在我在研究中发现了一些资源,但没有一个能达到预期的效果 首先,根据教程,我可以在头文件本身中编写我的函数。但我不想那样做。我想保持头文件不变,即使在接口保持不变的情况下更改了代码 对这个问题的回答提出了两种方法。首先,我可以分别编写代码和头文件,并在编译时包括它们,如下所示: gcc -o myprog test.c library.c 但我也不想那样做。我的库函数应该随时可用,而无需包含在编译行中。根据相同的答案,我可以创建一个库,然后用-l开关链接到它。但
gcc -o myprog test.c library.c
但我也不想那样做。我的库函数应该随时可用,而无需包含在编译行中。根据相同的答案,我可以创建一个库,然后用-l开关链接到它。但是当涉及到printf之类的函数时,您不需要执行其中任何一个。你所要做的就是包含头文件。有什么办法吗
TL总结;DR
我想用C编写一个库,其中:
printf
的库
您可以选择拒绝这些“免费赠品”——在gcc中是-nodefaultlibs
。如果添加此选项,printf
将丢失
注意:头可以实现的一件事是宏。但是,宏的行为与普通函数不同,因此使用宏时应格外小心。在过去,在共享库成为标准之前,您可以将代码添加到system C库中。这从来不是一个好主意;对系统库的任何更新都会丢弃您添加的内容。但这是可以做到的。否则,您必须找到一种方法来配置C编译器以运行链接器来自动链接库,就像它自动链接系统C库一样。这可能是可行的;不过,这不值得付出努力。(同样,对编译器的更改可能意味着您必须在每次更新编译器时进行更改。)。您只需使用
-lwhatever
。