Cython keyword – cdef
The cdef
keyword tells the compiler that this statement is a native C type or native function. Remember from Chapter 1, Cython Won't Bite that we used this line to declare the C prototype function:
cdef int AddFunction(int, int)
This is the line that let us wrap the native C function into a Python callable using the Python def
keyword. We can use this in many contexts, for example, we can declare normal variables for use within a function to speed up execution:
def square(int x): return x ** 2
This is a trivial example, but it will tell the compiler that we will always be squaring an integer. However, for normal Python code, it's a little more complicated as Python has to worry a lot more about losing precision when it comes to handling many different types. But in this case, we know exactly what the type is and how it can be handled.
You might also have noticed that this is a simple def
function, but because it will be fed to the Cython compiler, this will work just...