names=call
visibility=public
kind=defined

--- call(*args) -> Integer|DL::CPtr|nil
関数を呼び出します。

[[m:Fiddle::Function.new]] で指定した引数と返り値の型に基いて
Ruby のオブジェクトを適切に C のデータに変換して C の関数を呼び出し、
その返り値を Ruby のオブジェクトに変換して返します。

引数の変換は以下の通りです。

: void* (つまり任意のポインタ型)
  nil ならば C の NULL に変換されます
  [[c:DL::CPtr]] は保持している C ポインタに変換されます。
  適当に変換してから、C のポインタに変換します。
  文字列であればその先頭ポインタになります。
  [[c:IO]] オブジェクトであれば FILE* が渡されます。
  整数であればそれがアドレスとみなされます。
  どれでもなければ to_ptr を呼び出し DL::CPtr オブジェクトに
  変換したのが用いられます。

: (unsigned) char/short/int/long/long long
  Ruby の整数を C の整数に変換します。

: double/float
  Ruby の整数 or 浮動小数点数を C の浮動小数点数に変換します
  
返り値の変換は以下の通りです。

: void
  nil を返します

: (unsigned) char/short/int/long/long long
  C の整数を Ruby の整数に変換します

: void*(つまり任意のポインタ型)
  C のポインタを保持した [[c:DL::CPtr]] を返します。

@param args 関数の引数
@see [[m:Fiddle::Function.new]]

