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