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

问题描述 投票:0回答:3

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

c include header-files
3个回答
2
投票

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

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

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


2
投票

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

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


2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.