G_BEGIN_DECLS 和 G_END_DECLS 有什么用?

what are G_BEGIN_DECLS and G_END_DECLS for?

我一直在分析一些 gtk 应用程序的代码,发现在 .h 文件中有 G_BEGIN_DECLS 和 G_END_DECLS 宏。文档说

Used (along with G_END_DECLS) to bracket header files

但是没看懂我的意思

这些定义应该在 C 库的 public 头文件中使用。它们对库本身并不是很有用,但它们可能对想要使用库的 C++ 应用程序有用,因为它们扩展到 extern "C" 块,确保 C++ 编译器能够处理 C 头文件