G_BEGIN_DECLS 和 G_END_DECLS 有何用途?

Mat*_*iva 3 gtk glib gtk3

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

用于(与 G_END_DECLS 一起)将头文件括起来

但我不明白我的意思。

Jus*_*nen 6

这些定义应该在 C 库的公共头文件中使用。它们对于库本身来说并不是真正有用,但对于想要使用该库的 C++ 应用程序可能很有用,因为它们扩展为一个extern "C"块,以确保 C++ 编译器能够处理 C 标头