Compile time preprocessor
At compile time, similar to C/C++, we have the C-preprocessor to make some decisions on what gets compiled mostly from conditionals, defines, and a mixture of both. In Cython, we can replicate some of this behavior using IF
, ELIF
, ELSE
, and DEF
. This is demonstrated as an example in the following code line:
DEF myConstant = "hello cython"
We also have access to os.uname
as predefined constants from the Cython compiler:
UNAME_SYSNAME
UNAME_NODENAME
UNAME_RELEASE
UNAME_VERSION
UNAME_MACHINE
We can also run conditional expressions against these as follows:
IF UNAME_SYSNAME == "Windows": include "windows.pyx" ELSE: include "unix.pyx"
You also have ELIF
to use in conditional expressions. If you compare something as this against some of your headers in C programs, you will see how you can replicate basic C-preprocessor behavior in Cython. This gives you a quick idea of how you can replicate C-preprocessor usage in your headers.