将标题翻译为Cython

时间:2017-04-13 16:06:04

标签: c c-preprocessor cython header-files include-guards

Cython是否可以翻译C头Cython指令? (参见条件编译中的here)。 类似的建议也是here

在我的情况下,我想在我的.h中使用这些C指令:

/* myheader.h */
#define MONIT_STEP      1 // stuff for step monit
//#define MONIT_SCATTERING 1 // monitor particle scattering
#define clight          (3.0*1e10)  
//#define NORM(x,y,z)  (sqrt(x*x+y*y+z*z)) // maybe this is too much to ask?

将被翻译为:

# cython_header.pyx
DEF MONIT_STEP   = 1
DEF clight       = (3.0*1e10)

以后我可以这样做:

include "cython_header.pyx"

在我要编译的任何其他.pyx代码中。 当然,我暗示在任何" //"之后都无法忽略任何角色。 myheader.h中的字符串。

我离开了NORM(x,y,z)评论,因为我没有看到它实现起来很简单,因为它的功能"性质(即它不仅仅是复制粘贴)。

我以为我可以用这个捕获C预处理器(参见Cython docs,"引用C头文件"):

cdef extern from "spam.h":
    pass

但不起作用。

当然,我总是可以使用this方法,但我希望我们能够更加一致。

0 个答案:

没有答案