LuaJIT-tcc 学習:Csub 利用サンプル

2017-12-25 :  PCクリニック
5月(2017-05-20)の記事「LuaJIT-tcc 学習:利用法まとめ」では、

  “tcc.lua”の利用パターンをまとめた。

  ・・・・・
  ・・・・・
  次に、Cコードをコンパイルして即時に実行するパターン
  当面考えられる全てのパターンを集めた場合を考える。

  即ち、Cコードで、SUB 関数を定義し、即時に実行する。

  この時、SUB 関数は、
  パターンA:C の AAA 関数を呼ぶ
  パターンX:Lua の 標準関数(例:math.sin)を呼ぶ
  パターンB:Lua の 自作 BBB 関数を呼ぶ
  パターンC:既存DLL にある CCC 関数を呼ぶ
  これらのパターンを含めるとすると、
  ・・・・・
  ・・・・・

と云うことで、

  ・・・・・
  ・・・・・
  些か分かりにくいかナ?
  ・・・・・
  ・・・・・


そこで、
一番利用頻度の高そうなパターンAに限定して、
サンプルコードを整理した。
-- Cコードをコンパイルして即時に実行するパターンA
-- C の 関数 Csub を呼ぶ
----- 以下3行は必須。
tcc=require'tcc'('libtcc')
TCL = tcc.new()
TCL:set_output_type( 'output_memory' )
----------------------

TCL:compile_string [[ // Csub 関数のコード
double Csub( double x, double y ){
double z;
z = x + y;
return z;
}
]]
TCL:relocate( 'relocate_auto' )
Csub = TCL:get_symbol( 'Csub', 'double(*)( double, double )' )

-- ここで、関数 Csub を使う LuaJIT のコード
x, y = 2.5, 5.1
z = Csub(x,y); print( z ) --> 7.6
となるかナ?


本日はここまで。


luajit-tcc 学習も続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


171113
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
04 | 2018/05 | 06
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク