有没有办法包装一个像关键字一样命名的结构(例如打印)?
Posted
技术标签:
【中文标题】有没有办法包装一个像关键字一样命名的结构(例如打印)?【英文标题】:Is there a way to wrap a structure that is named like a keyword (eg. print)? 【发布时间】:2012-01-16 16:01:37 【问题描述】:我有一些C
源代码,想将其包装在 Cython 中。现在的问题是,有一个名为print
的结构,并且将其外部化会引发语法错误。
cdef extern from "foo.h":
struct print:
# ...
当一个属性或一个函数或类似的东西像关键字一样被调用时,也会出现同样的问题。
cdef extern from "foo.h":
struct foo:
bint print
print(char*, int)
有没有办法解决这个问题,不修改源代码?也许有一些技术可以用源文件中的实名替换代理名?
【问题讨论】:
【参考方案1】:我认为您正在寻找的解决方案类似于:
cdef extern from "foo.h":
struct print "MY_print":
double var "MY_var"
print.var 将被定义为:
MY_print.MY_var
这样你可以重命名头文件中的结构、函数、联合和枚举。当 Cython 将您的代码编译成 C 代码时,名称会被转换。
可以在here找到Cython文档的相关部分。
【讨论】:
以上是关于有没有办法包装一个像关键字一样命名的结构(例如打印)?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在javascript中创建hashmap并像添加和删除值一样操作它