加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 包括一个C头,它声明一个名为“new”的变量?

发布时间:2020-12-16 10:16:42 所属栏目:百科 来源:网络整理
导读:我正在尝试在C应用程序中使用OpenCA(libPKI)库.但是,当包含文件pki_x509_data_st.h时,会遇到以下代码片段: typedef struct pki_x509_callbacks_st { /* ---------------- Memory Management -------------------- */ void * (*new) (void ); void (*free) (
我正在尝试在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”变量之后,我遇到了一些新问题(“在struct之后使用typedef name”等).我想避免改变过多的旧C代码(修改库标题会让我感到紧张)所以我决定只创建一个最小的隔离层.

解决方法

如果你能逃脱它,将它重命名为C中不是保留字的东西.您可能最终不得不重建整个库并在那里应用“修复”.

我正在研究在C代码和C库之间构建一个隔离层,可能只是一些C代码,它只暴露你需要使用的函数并完全将你与其他函数隔离开来.

哦,顺便说一下 – 这是一个函数指针声明,而不是变量声明.只是为了澄清这个……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读