【问题标题】:One header for multiple source files?多个源文件的一个标题?
【发布时间】:2012-03-07 12:41:55
【问题描述】:

如何编写定义接口的单个​​头文件并使用单独的源文件编写特定于平台的代码?

例如:

video.h
video_windows.c
video_linux.c
video_osx.c

【问题讨论】:

    标签: c header portability


    【解决方案1】:

    在您的问题中,当您谈论源文件之间的共享标头时,您拥有所有头文件。

    在任何情况下,您只需提供一个通用的.h 文件并拥有 3 个不同的

    video_windows.c
    video_linux.c
    video_osx.c
    

    然后根据平台将正确的文件包含到您的 makefile(或任何您使用的文件)中。

    如果您想直接分隔头文件或源文件中的代码,您可以轻松使用一些预定义的宏,请参阅here

    【讨论】:

    • 你是说头文件只需要在名称上匹配目标文件吗?即 a.h 匹配 a.o?
    • 头文件名与源文件名无关。您可以调用它foo.h,然后在一个名为bar.c 的文件中定义它的方法,没有任何问题。您只需 #include "foo.h" 在源文件和所有其他涉及的文件中。头文件名没有任何限制或约束。
    猜你喜欢
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多