るりまサーチ

最速Rubyリファレンスマニュアル検索!
36件ヒット [1-36件を表示] (0.017秒)
トップページ > クエリ:sizeof[x] > クエリ:typealias[x]

別のキーワード

  1. mkmf check_sizeof
  2. fiddle sizeof_int
  3. fiddle sizeof_float
  4. fiddle sizeof_long
  5. fiddle sizeof_char

ライブラリ

モジュール

キーワード

検索結果

Fiddle::Importer#typealias(new, orig) -> () (18107.0)

extern や struct で利用する型の別名を定義します。

...extern や struct で利用する型の別名を定義します。

@param new 別名(文字列)
@param orig 別名を付けたい型の名前(文字列)
@see Fiddle::Importer#extern, Fiddle::Importer#sizeof,
Fiddle::Importer#struct, Fiddle::Importer#union...

Fiddle::Importer#bind(signature, *opts) { ... } -> Fiddle::Function (24.0)

Ruby のブロックを C の関数で wrap し、その関数をモジュールに インポートします。

...dle::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(Fiddle::SIZEOF_INT).unpack("i!")
y = py.to_s(Fiddle::SIZEOF_INT).unpack("i!")

x <=> y...
...}
end

data = [32, 180001, -13, -1, 0, 49].pack("i!*")
M.qsort(Fiddle::Pointer[data], 6, Fiddle::SIZEOF_INT, M["compare"])
p data.unpack("i!*") # => [-13, -1, 0, 32, 49, 180001]...

fiddle/types (18.0)

C の型の別名を定義するライブラリです。

...include する
ことで、Fiddle::Importer#extern や Fiddle::Importer#struct で
利用できる型が増えます。内部で Fiddle::Importer#typealias
呼び出しています。

実装の問題があるため、 Fiddle::Importer#dlload を呼びだしてから
include してください...
...e 'fiddle/types'

module M
extend Fiddle::Importer
dlload "libc.so.6" # include の前に dlload を呼ぶ
include Fiddle::BasicTypes
end

# uint は Fiddle::BasicTypes によって定義された型で、unsigned int の別名
p(M.sizeof("uint") == M.sizeof("unsigned int"))...