Как определить инициализированный C-массив в Pyrex? - PullRequest
3 голосов
/ 15 марта 2010

Я хочу определить инициализированный C-массив в Pyrex, например эквивалент:

unsigned char a[8] = {0,1,2,3,4,5,6,7};

Что будет эквивалентно в Pyrex?

Просто массив равен

cdef unsigned char a[8]

Но как я могу сделать его инициализированным с моими значениями?

1 Ответ

4 голосов
/ 15 марта 2010

В Cython , преемнике Pyrex, эта функция была добавлена ​​в течение года, чтобы исправить этот запрос функции , поэтому, например, сейчас в Cython работает:

cdef double a[] = [0.5, 0.3, 0.1, 0.1]

Тем не менее, разработка Pyrex идет гораздо медленнее (поэтому Cython был разветвлен много лет назад разработчиками за быстрые действия), поэтому я сомневаюсь, что он воспользовался этой возможностью (хотя вы можете попробовать, особенно если используя самый последний выпуск Pyrex, 0.9.8.6).

Если Pyrex не предоставляет вам нужные функции, могу ли я вместо этого предложить перейти на Cython? Большая часть кода Pyrex должна просто плавно перекомпилироваться в Cython, и вы получите дополнительные возможности таким образом.

...