將C結構體變數傳給LUA

2021-05-27 14:13:40 字數 704 閱讀 1123

typedef struct

tdata;

static int getattribute(lua_state* l)

else if(attribute == "y")

else

lua_pushnumber(l, result);

return 1;

}static struct lual_reg datalib = ,

};void getmetatable(lua_state* l, lual_reg* methods)

}int main()

lual_openlibs(lua);

tdata input = ;

lua_pushlightuserdata(lua, &input);

getmetatable(lua, datalib);

lua_setmetatable(lua, -2);

lua_setglobal(lua, "input");

if (lual_dofile(lua, filename))

lua_getglobal(lua, "data");

int output = lua_tointeger(lua, 0);

std::cout << output << std::endl;

return 0;

}

如何將c結構資料傳給lua

最近需要使用lua來讓策劃那些配置一些邏輯,於是調研了一下lua是如何實現這部分工作的,最終發現乙個通常的策劃是利用lightuserdata和metatable來協調解決這個問題。也即將資料 指標給lua,另外告訴它乙個如何操作這些資料的metamethods即可。請看下面的示例 typedef ...

C 結構體變數的引用 結構體變數引用

c 對結構體變數可以在定義時指定初始值。struct studentstudeng1 c 在定義了結構體變數以後,可以引用這個變數。可以將乙個結構體變數的值賦給另乙個具有相 同結構的結構體變數。student1 student2 可以引用乙個結構體變數中的乙個成員的值。student1.num 表示...

C 結構體概述 輸出結構體變數

c 提供了許多種基本的資料型別,但是由於程式需要處理的問題往往比較複雜,而且呈多樣化,已有的資料型別顯得不能滿足使用要求。因此c 允許程式設計師根據需要自己宣告一些型別,程式設計師可以自己宣告的型別有結構體型別 共用體型別 列舉型別 類型別等,這些都是程式設計師可以自己定義的型別。在乙個組合項中包含...