当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia @cfunction用法及代码示例


用法:

@cfunction(callable, ReturnType, (ArgumentTypes...,)) -> Ptr{Cvoid}
@cfunction($callable, ReturnType, (ArgumentTypes...,)) -> CFunction

从 Julia 函数 callable 为给定的类型签名生成 C-callable 函数指针。要将返回值传递给 ccall ,请在签名中使用参数类型 Ptr{Cvoid}

请注意,参数类型元组必须是文字元组,而不是 tuple-valued 变量或表达式(尽管它可以包含 splat 表达式)。并且这些参数将在编译时在全局范围内进行评估(不会推迟到运行时)。添加一个'$' 在函数参数前面将其更改为在局部变量上创建运行时闭包callable(并非所有架构都支持此函数)。

manual section on ccall and cfunction usage

例子

julia> function foo(x::Int, y::Int)
           return x + y
       end

julia> @cfunction(foo, Int, (Int, Int))
Ptr{Cvoid} @0x000000001b82fcd0

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.@cfunction — Macro。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。