scilab调用C函数

时间:2013-02-05 08:27:53

标签: c call scilab

我想在scilab中调用C函数。我试图遵循“召唤”惯例,但它不适合我,因此我正在寻求帮助。

C函数:

f1=['void add1(double a,double b,double *c)
     { *c=a+b; }'];

mputl(f1,'fun1.c')

ilib_for_link('add1','fun1.c',[],"c")
a=1.1;b=2.2;
c=call('add1',a,1,'d',b,2,'d','out',[1,1],3,'d');

disp(c)

f1函数应该只添加两个实数并通过引用传递它。结果总是超出范围。 你能帮我指出我做错了什么以及如何在scilab中正确调用C函数吗?

谢谢。

彼得

1 个答案:

答案 0 :(得分:0)

如果你创建了所有参数指针,它就可以了。另外,不要忘记通过执行loader.sce

来加载该函数

工作示例:

f1=['void add1(double* a,double* b,double *c){ *c=*a+*b; }'];

mputl(f1,'fun1.c')

ilib_for_link('add1','fun1.c',[],"c")

a=1.1;
b=2.2;

exec loader.sce

[c] = call('add1', a, 1,'d', b,2,'d', 'out',[1,1],3,'d');

disp(c)