Luaスタックから値をポップする 応援する  Luaスタックから値をポップしてみましょう.
値をポップするにはlua_pop()関数を利用します.
lua_pop(L, 1); //上から1つpopする
lua_pop(L, 2); //上から2つpopする
#include <stdio.h>
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
void dumpStack(lua_State* L)
{
(略)
}
int main (void)
{
lua_State* L = luaL_newstate();
lua_pushboolean(L, 1); //trueをpush
lua_pushnumber(L, 10.5); //10.5をpush
lua_pushinteger(L, 3); //3をpush
dumpStack(L);
lua_pop(L, 1); //値を1つpop
dumpStack(L);
lua_pushnil(L); //nilをpush
lua_pushstring(L, "Hello world"); //hello worldをpush
dumpStack(L);
lua_pop(L, 2); //値を2つpop
dumpStack(L);
lua_close(L);
return 0;
}
実行結果
Stack[ 3- number] : 3.000000
Stack[ 2- number] : 10.500000
Stack[ 1- boolean] : true
Stack[ 2- number] : 10.500000
Stack[ 1- boolean] : true
Stack[ 4- string] : Hello world
Stack[ 3- nil] :
Stack[ 2- number] : 10.500000
Stack[ 1- boolean] : true
Stack[ 2- number] : 10.500000
Stack[ 1- boolean] : true
| |
|