如何在C++源文件中使用某些 Unix 头文件

How to use some Unix header file in a C++ source file?

本文关键字:Unix 文件 C++ 源文件      更新时间:2023-10-16

我计划使用一些Linux API来完成C++语言的网络程序任务。所有的Linux API或者结构都是在C头文件中定义的,比如<netinet/in.h>,如何在Cpp源文件中正确使用它们?如何使用 C 头文件中定义的结构?我应该使用C++联动规范吗?如:

    extern "C" {
        #include <netinet/in.h>
};

Linux中的系统标头已经C++兼容,除了#include它们之外,您无需执行任何其他操作。事实上,绝大多数C库都有C++兼容的标头,因此您只需#include它们即可。

有一些例外(如ffmpeg(。那些你需要用extern "C" {}包裹.尽管可能并不总是可以通过以这种方式包装来使用本机C标头,因为C可能包含其他不兼容性。

有关使用 ffmpeg 的示例,请参阅此处