我有一个c函数如下
void *get_queue_head(void)
char *get_element_name(void *element)
void for_each_element_in_queue(void *head, void (*callback_fn)(void *element, void *user_data), void *user_data)
让 在这个例子中,让我们说我希望callback_fn积累元素的名称
相应的调用将是
def accumlate_element_name(element, element_list):
element_list.append(ctypes.get_element_name(element)
element_list=[] # create an empty list
def accumulate_all_element_names():
head=ctypes.get_queue_head()
for_each_element_in_queue(accumulate_element_name, element_list)
虽然我能够为" for_each_element_in_queue"的第二个参数定义函数指针。是像int这样的简单对象,我无法弄清楚如何传递" generic-list"作为参数,可以通过" python函数"
来解释