如何在Pyrex中定义初始化的C数组?
我想在Pyrex中定义一个已经初始化的C数组,比如说相当于下面这个:
unsigned char a[8] = {0,1,2,3,4,5,6,7};
在Pyrex中怎么写才能实现这个呢?
仅仅定义数组是这样的:
cdef unsigned char a[8]
但是我怎么才能让它用我自己的值来初始化呢?
1 个回答
4
在Cython中,这是Pyrex的继任者,这个功能在一年前就被添加进来了,目的是为了满足这个功能请求。所以现在在Cython中,下面的代码可以正常工作:
cdef double a[] = [0.5, 0.3, 0.1, 0.1]
不过,Pyrex的发展速度要慢得多(这也是为什么几年前一些开发者决定分叉出Cython,想要更快的进展),所以我怀疑Pyrex是否已经加入了这个功能(不过你可以试试,特别是如果你在使用最新版本的Pyrex,0.9.8.6)。
如果Pyrex不能满足你的需求,我建议你考虑换用Cython。大部分Pyrex的代码在Cython中应该可以顺利重新编译,而且这样你还能获得更多的额外功能。