是否有一种"适当的"方式在C中实现更高阶的函数.
我对这里的可移植性和语法正确性等问题非常好奇,如果有多种方法,那么优点和缺点是什么.
编辑:我想知道如何创建更高阶函数的原因是我编写了一个系统来将PyObject列表(在调用python脚本时得到)转换为包含相同数据但以非方式组织的C结构列表依赖于python.h库.所以我的计划是有一个函数,它遍历pythonic列表并在列表中的每个项目上调用一个函数,并将结果放在一个列表中然后返回.
所以这基本上是我的计划:
typedef gpointer (converter_func_type)(PyObject *)
gpointer converter_function(PyObject *obj)
{
// do som stuff and return a struct cast into a gpointer (which is a void *)
}
GList *pylist_to_clist(PyObject *obj, converter_func_type f)
{
GList *some_glist;
for each item in obj
{
some_glist = g_list_append(some_glist, f(item));
}
return some_glist;
}
void some_function_that_executes_a_python_script(void)
{
PyObject *result = python stuff that returns a list;
GList *clist = pylist_to_clist(result, converter_function);
}
Run Code Online (Sandbox Code Playgroud)
并澄清问题:我想知道如何以更安全和更正确的方式做到这一点.我真的想保持更高阶的功能风格,但如果这是不赞成的话,我非常感谢以其他方式做到这一点.
我正在尝试为基于Linux的系统找到一个终端模拟器,它允许我根据我正在运行的应用程序来更改背景.我认为这对于一些OSC转义序列来说应该很容易,但我找不到任何关于有任何终端支持它的文档.
有什么建议?