c操作lua栈 6

来源:互联网 发布:开店记账软件 编辑:程序博客网 时间:2024/06/01 10:31
void printstack(lua_State* L){for (int i = 1; i <= lua_gettop(L); i++){int nType = lua_type(L,i);switch (nType){case LUA_TNIL:printf("index = %d  nil == \n",i);break;case LUA_TBOOLEAN:printf("index = %d boolean = %s\n",i,lua_toboolean(L,i)>0?"true":"false");break;case LUA_TNUMBER:printf("index = %d num = %f\n",i,lua_tonumber(L,i));break;case LUA_TSTRING:printf("index = %d string = %s\n",i,lua_tostring(L,i));break;default:printf("unknow type %d\n",i);break;}}printf("------------------\n");}int main(){lua_State *L = luaL_newstate();lua_pushnumber(L,1);lua_pushnumber(L,2);lua_pushnumber(L,3);lua_pushnumber(L,4);lua_pushnumber(L,5);printstack(L);    lua_pop(L,1);   //删除 5printstack(L);  //1 2 3 4lua_remove(L,2); //删除 索引为2的地方,就是 删除2printstack(L);   // 1 3 4lua_pushvalue(L,1);  //找到索引为1的元素,然后在执行 pushnumberprintstack(L);  // 1 3 4 1lua_pushinteger(L,5); // 1 3 4 1 5lua_insert(L,3);  //找到栈顶元素5 然后把5                   //插入到索引为二的地方,删除原栈顶元素printstack(L);    //1 3 5 4 1 lua_replace(L,3); //找到栈顶元素 1最后一个(右边) 然后,替换指定索引位置                  //的数(5) printstack(L);    //1 3 1 4lua_settop(L,2); //设置栈顶为 2printstack(L);   // 1 3return 0;}

0 0
原创粉丝点击