CコードからPythonモジュールをインポートし、Pythonコードと同じようにで定義されたものを呼び出すことができます。少し長めですが、完全に可能です。
このようなことを行う方法を知りたいときは、CAPIのドキュメントを参照してください。モジュールのインポートに関するセクションが役立ちます。また、すべてドキュメントにある属性の読み取り方法、関数の呼び出し方法なども読む必要があります。
ただし、実際に実行したいのは、Cから基になるライブラリsdlを呼び出すことだと思います。これはCライブラリであり、Cから非常に簡単に使用できます。
これは、動作するコードのビットから適応されたCでPythonモジュールをインポートするためのサンプルコードです。
PyObject *module = 0;
PyObject *result = 0;
PyObject *module_dict = 0;
PyObject *func = 0;
module = PyImport_ImportModule((char *)"pygame"); /* new ref */
if (module == 0)
{
PyErr_Print();
log("Couldn't find python module pygame");
goto out;
}
module_dict = PyModule_GetDict(module); /* borrowed */
if (module_dict == 0)
{
PyErr_Print();
log("Couldn't find read python module pygame");
goto out;
}
func = PyDict_GetItemString(module_dict, "pygame_function"); /* borrowed */
if (func == 0)
{
PyErr_Print();
log("Couldn't find pygame.pygame_function");
goto out;
}
result = PyEval_CallObject(func, NULL); /* new ref */
if (result == 0)
{
PyErr_Print();
log("Couldn't run pygame.pygame_function");
goto out;
}
/* do stuff with result */
out:;
Py_XDECREF(result);
Py_XDECREF(module);