I have a simple Astruct.pyx with a structure definition (Astruct.pxd):
cdef struct A: int x int y int z
And the Cython function that uses it (struct_test.pyx):
from random import randint from Astruct cimport A def do(): N = 1000000 M = 65535 As = [] total = 0 for i in xrange(N): cdef A a ax = randint(0, M) ay = randint(0, M) az = randint(0, M) As.append(a) for i in xrange(N): total += As[i].x + As[i].y + As[i].z print total
However, when I try to build struct_test.pyx, I get this error: "cdef instruction is not allowed here", pointing to "cdef A a". He does not complain about another definition of variable A if it is outside the loop, but I do not understand what is especially important for the loop.
source share