swig:C double到Python float的转换

你好, 我正在学习使用Python的C码. 这是swig文件mvf.i: %模块MVF %包括" carrays.i" %array_class(double,doublearray); %typemap(out)double,float" $ result = pyfloat_fromdouble($ 1);" %包括MVF.H 这是MVF.C文件 #include double sumsquares(int n,double x []) { 双和; int i; for(sum = 0.0,i = 0; i

# 回答1

厄尼写道: 您需要在Swig界面顶部附近添加一个逐字块 文件,例如 %模块MVF %{ #include" mvf.h" %} %包括" carrays.i" %array_class(double,doublearray); %包括MVF.H 否则,在swig生成的 mvf_wrap.c文件,编译器假设sumsquares()返回 int而不是双重. (如果您 编译mvf_wrap.c时,将-wall标志添加到编译器标志中. 有关为什么需要的更多信息,请参见"输入格式" SWIG文档的" Swig Basics"一章的部分:http://www.swig.org/doc1.3/swig.html#n3 我还删除了Double和Float的" Out" TypeMap,因为那是 内置并且不需要明确指定. 希望这可以帮助, lyle

标签: python

添加新评论