lua与c++交互:lua如何调用c++中数据?
最近在学习如何实现lua和c++的交互, 看了一些文档和网上的一些教程, 但是有些地方还是不太明白.
我现在想用lua调用c++中的一些全局变量, 网上的一些前辈写的例子是通过堆栈(貌似也只有这一种思路),不过当处理的数据比较少的时候, 应该没问题, 当数据很多的时候, 堆栈是不是会不够呢?(lua堆栈默认20)
比如, 只有一个全局变量, 那么直接压入即可, 如果有5000个变量, 且这些变量随时在可能会调用, 那么要把这些值全部压入堆栈?肯定会溢出吧? 虽然可以调整堆栈大小, 但应该也不是最好的解决方法吧....
为了防止我说的不明白, 就再详细举个例子:
- C/C++ code
// 只有一个变量lua_pushnumber(L, 1 ); // L 是lua_State*lua_rawset( state, -2 );lua_setglobal( state, "arg" ); // 这样arg可以在lua中使用
但是当有n个变量时, 这种方法是不是会使堆栈溢出? 因为这些变量不是局部使用, 而是全局的(如宏定义)
请各位前辈指点一二, 谢谢
[解决办法]
直接用table。没人用局部变量干这事。