gpt4 book ai didi

c++ - 在 C++ 中包含的 C header 中转发声明枚举

转载 作者:太空宇宙 更新时间:2023-11-04 04:57:25 24 4
gpt4 key购买 nike

我有前向声明枚举的 C 头文件。显然,这在 C++ 中是不可能的,因此所有形式的预处理器包装

extern "C" {  #include <header.h>}

不会有帮助。有什么方法可以将这些 header 包含在 C++ 翻译单元中而不需要我编辑 C header 吗?幸运的是,在这种情况下修改 C header 以避免前向声明相对轻松,但我认为这是一个非常重要的问题。总的来说,我曾认为总是可以从 C++ 链接到 C 库,但在某些情况下无法包含 header 似乎使它变得不切实际。

一些相关的问题: 71416 681243

最佳答案

前向声明的枚举在 C++0x 中可用。如果您的编译器尚不支持它,那么将枚举包装在 namespace 中将避免违反 ODR。

附言一个很好的解释:http://www.devx.com/cplus/Article/42478/1954?pf=true

关于c++ - 在 C++ 中包含的 C header 中转发声明枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4570914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com