Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > dl/importライブラリ > DL::Importerモジュール > sizeof
sizeof(t) -> Integer
[permalink][rdoc]C における sizeof(t) の値を返します。
t が文字列の場合、その文字列が表す C の型の size が返されます。 例えば、sizeof("char") は 1 を返します。 sizeof("char*") は環境によって 4 や 8 といった値を返します。
DL::Importer#struct で定義した 構造体クラスを渡すと、その構造体のサイズを返します。 DL::Importer#union で定義した共用体クラスも同様です。
t がクラスの場合、t が to_ptr というインスタンスメソッドを持っている ならば t.size を返します。
それ以外の場合は CPtr[t].size を返します。
例:
require 'dl/import' module A extend DL::Importer Timeval = struct(["long tv_sec", "long tv_usec"]) p sizeof("char") # => 1 p sizeof("void*") # => 8 p sizeof(Timeval) # => 16 end