我需要从stdint.h
访问uint64_t
typedef,这是我正在编写的一些包装代码,我不知道如何完成它。问题是,从文档中我可以看出,我的ctypedef
必须采用以下形式:
ctypedef unsigned long uint64_t
或者
^{pr2}$取决于WORDSIZE
是64还是32。我还没有找到如何从Cython获得对这个预处理器定义的访问权,如果可以的话,Cython似乎不喜欢ctypedef
语句在if
语句中,当我试图将if
语句放入cdef
块中时,它似乎将其与声明混淆。有什么想法吗?希望我只是错过了一些非常基本的东西。在
任何
ctypedef
都不会在.c文件中生成typedef。Cython将包括stdint.h
,而您的C编译器将使用从那里得到的实际typedef。在该类型提供的唯一重要的事情是cython何时生成在C类型和Python类型之间自动转换的代码。使用}。这样,您希望在转换时不会被截断。在
unsigned long long
意味着Cython将使用PyLong_FromUnsignedLongLong
和{Cython已经在模块^{} 中包含了这些定义:
相关问题 更多 >
编程相关推荐