给出以下C原型函数:
void my_function(POINTER *p);
如何使用SWIG生成调用时的Python包装:
my_function()
--->它会调用my_function(NULL);
my_function(None)
--->它会调用my_function(NULL);
my_function(my_pointer)
--->它会调用my_function(my_pointer);
答案 0 :(得分:2)
您希望SWIG为NULL
生成默认参数p
。这可以通过以下两种方式之一实现,请注意None
会自动作为NULL
指针传递。
在声明my_function
:
%typemap(default) POINTER *p {
$1 = NULL;
}
您可以在界面文件中显示SWIG以下函数声明:
void my_function(POINTER *p = NULL);
即使这不是有效的C,SWIG也会知道该怎么做。您也可以在%include
语句之后添加它来覆盖C头文件中的函数声明。