Julia 调用 C 语言(笔记)

                     

贡献者: addis

  • 本文处于草稿阶段。

int myfun () {
 return 2;
}
double myfun2 (float i, float j) {
 return i+j;
}

   编译动态链接库:

gcc -o test.o -c test.c
gcc -shared -o test.so test.o -fPIC

   在 Julia 中调用

test = joinpath(@__DIR__, "test.so")
a = ccall((:myfun,test), Int32, ())
b = ccall((:myfun2,test), Float64, (Float32,Float32), 2.5, 1.5)
其中 @__DIR__ 是当前路径。注意 ccall 是一个关键字,不是函数。:函数名 的类型是 Symbol。第二个参数是返回类型,第三个参数是函数的参数类型,后面是具体的参数。如果只有一个参数,用 (类型,) 即 1-Tuple。没有参数时,() 表示 0-Tuple。


致读者: 小时百科一直以来坚持所有内容免费,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利