names=bind
visibility=public
kind=defined

--- bind(signature, *opts){ ... } -> DL::Function
Ruby のブロックを C の関数で wrap し、その関数をモジュールに
インポートします。

これでインポートされた関数はモジュール関数として定義されます。
また、[[m:DL::Importer#[] ]] で [[c:DL::Function]] オブジェクトとして
取り出すことができます。

signature で関数の名前とシネグチャを指定します。例えば
"int compare(void*, void*)" のように指定します。

opts には :stdcall もしくは :cdecl を渡すことができ、
呼出規約を明示することができます。

@return インポートした関数を表す [[c:DL::Function]] オブジェクトを返します。

@param signature 関数の名前とシネグチャ
@param opts オプション

例
  require 'dl/import'
  
  module M
    extend DL::Importer
    dlload "libc.so.6"
    typealias "size_t", "unsigned long"
    extern "int qsort(void*, size_t, size_t, void*)"
    
    bind("int compare(void*, void*)"){|px, py|
      x = px.to_s(DL::SIZEOF_INT).unpack("i!")
      y = py.to_s(DL::SIZEOF_INT).unpack("i!")
      x <=> y
    }
  end
  
  data = [32, 180001, -13, -1, 0, 49].pack("i!*")
  M.qsort(DL::CPtr[data], 6, DL::SIZEOF_INT, M["compare"])
  p data.unpack("i!*") # => [-13, -1, 0, 32, 49, 180001]


