Writing Extensions in

It is possible to write extension modules in . Some restrictions apply. If the main program (the Python interpreter) is compiled and linked by the C compiler, global or static objects with constructors cannot be used. This is not a problem if the main program is linked by the compiler. All functions that will be called directly or indirectly (i.e. via function pointers) by the Python interpreter will have to be declared using extern "C"; this applies to all ``methods'' as well as to the module's initialization function. It is unnecessary to enclose the Python header files in extern "C" {...} — they use this form already if the symbol __cplusplus is defined (all recent C++ compilers define this symbol).