gpt4 book ai didi

c++ - 包括声明一个名为 "new"的变量的 C 头文件?

转载 作者:太空狗 更新时间:2023-10-29 19:47:15 24 4
gpt4 key购买 nike

我正在尝试在 C++ 应用程序中使用 OpenCA (libPKI) 库。但是,当包含文件 pki_x509_data_st.h 时,会遇到以下代码片段:

typedef struct pki_x509_callbacks_st {

/* ---------------- Memory Management -------------------- */
void * (*new) (void );
void (*free) (void *x );
void * (*dup) (void *x );

由于"new"指针声明,这不会编译。

我怎样才能让它发挥作用?

更新
重命名"new"变量后,我遇到了一些新问题(“在结构之后使用 typedef 名称”等)。我想避免更改过多的旧 C 代码(修改库 header 不知何故让我感到紧张)所以我决定只创建一个最小的隔离层。

最佳答案

#define new its_reserved_dammit
#include <pki_x509_data_st.h>
#undef new

不过,我怀疑链接器会对此感到不安。

但是,使用未准备好用于 C++ 的 C 库,链接器无论如何都会报错,因为 header 无论如何都缺少重要的 extern "C" 包装...

关于c++ - 包括声明一个名为 "new"的变量的 C 头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2667500/

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