【问题标题】:what are G_BEGIN_DECLS and G_END_DECLS for?G_BEGIN_DECLS 和 G_END_DECLS 是干什么用的?
【发布时间】:2019-11-02 04:31:43
【问题描述】:

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

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

但我不明白我的意思。

【问题讨论】:

  • 这并不完全正确。完整的文档 (developer.gnome.org/glib/stable/…) 说:“用于(与 G_END_DECLS 一起)括号头文件。如果使用的编译器是 C++ 编译器,则在标头周围添加 extern "C"。”。重要的部分是第二句话。

标签: gtk gtk3 glib


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 2017-11-03
    • 2014-12-20
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多