最近用swig处理C接口,碰上了c中的引用及数组类型的变量,如 double &aaa, double abc[3]。可是直接用swig转之后是不行。将类型转为了SWIGTYPE_p_double。然后又仔细看了看文档,外加baidu了很多内容才明白,直接转不行,必须有swig的说明代码才可以。
如果C接口定义为
void get(double & aaa);
需要在.i文件中,加入如下代码。其中INOUT是说名这个变量既是输入也是输出。如果仅作输出可以改成OUTPUT。
%include <typemaps.i>
%apply double & INOUT { double & aaa };
本文探讨了使用SWIG工具处理C语言接口时遇到的问题,特别是如何正确处理C中的引用和数组类型变量。通过详细解释和示例代码,文章展示了如何在SWIG的.i文件中添加特定的代码注释,以确保C接口中的引用和数组能够被正确地转换和使用。
1641

被折叠的 条评论
为什么被折叠?



