2004-01-25から1日間の記事一覧

lua_next使用時の注意

Lua

イテレーションにおける要素の取得順序は不定。number,tableなどもソートされない。 ちゅーことはですよ。インデックスを指定して値を取るか、ラベル名を指定して値を取るかしかない(そりゃそうか?) ソート順序の指定、型コレクションを取得する方法につ…

テーブル内テーブルへのアクセス

Lua

luaスクリプト test={3,4,5,test2={10,11}} test.test2テーブルにアクセスする //グローバル配列へのアクセス lua_getglobal(L, "test"); printf("pop%3d\n",lua_gettop(L)); lua_pushstring(L, "test2"); lua_gettable(L, -2); lua_pushnil(L); printf("%3d…

配列のイテレーション

Lua

//配列の巡回 lua_pushnil(L); while(lua_next(L ,-2) != 0) { printf("%3d\n",lua_gettop(L)); printf("%s - %s - %s\n", lua_typename(L, lua_type(L, -3)), lua_typename(L, lua_type(L, -2)), lua_typename(L, lua_type(L, -1))); printf("%f - %f\n", l…

単純な配列へのアクセス

Lua

luaのスクリプトで、グローバルにこんな配列があったとして test={3,4,5} これにアクセスする //グローバル配列へのアクセス lua_getglobal(L, "test"); lua_rawgeti(L, -1, 1); printf("%f\n",lua_tonumber(L,-1)); lua_pop(L, 1); lua_rawgeti(L, -1, 2); …

lua_rowgetiはバグ?

Lua

lua_rowgetiで配列から値を取り出そうとすると、結果がスタックの0に格納されます。でもスタック0って使用禁止では? ←勘違い。配列インデックスの初期値を"0"にしてて、スタックが変になってたっぽい。正しくは"1"から。

lua_numberは

Lua

lua_numberはdoubleの#defineです

"%f"にintを入れるな(なの?)

以下の出力の結果は"0.0000"です printf("%f\n",1); 書式化文字列とか、そういう基本的な所を分かって無いんだよな……。俺。(ちなみに"%d"なら"1"と表示されます)