C头文件具有相同的声明但实现不同

时间:2011-07-27 03:16:33

标签: c include header-files

我的项目中有两组头文件和.c文件我只会包含其中一个标题,但我希望选项能够快速交换标题包括。两个头文件都有一些完全相同的声明,但.c文件中的实现是不同的。基本上我需要的是告诉编译器只编译与头文件im相关联的.c文件,包括程序中的其他地方。

3 个答案:

答案 0 :(得分:2)

您始终可以在编译/链接时指定要链接的.c或.o文件

gcc -o myexe file1.c/file1.o
or
gcc -o myexe file2.c/file2.o

如果你有一个makefile,如果你有相同的头文件但有2个不同的实现,你甚至可以使它成为一个不同的make指令。我建议只使用1个头文件并更改底层实现,没有必要让2个头文件具有类似的声明。

答案 1 :(得分:2)

如果两个头文件完全相同,则不需要维护两个头文件。您只能保留一份副本。无论哪个代码包含头文件,都只能包含此单个头文件。

您始终可以在编译时指定要编译的.c文件。在gcc中,您可以在命令行中提及要编译的C文件。在Visual Studio中,您可以包含正确的C文件。

答案 2 :(得分:2)

我想你应该只维护一个头文件,并在你的代码中包含它。在makefile中引入一个标志,以链接要链接的实现。你还没有提到你用什么构建。