사용자 도구

사이트 도구


kb:luaapimacro

LuaApi/Macro

매크로들

lua_pop

#define lua_pop(L,n) lua_settop(L, -(n)-1)

스택의 맨 위에 있는 아이템을 팝한다.

lua_pushcfunction

#define lua_pushcfunction(L,f) lua_pushcclosure(L, f, 0)

C 함수를 스택에다 푸쉬한다. 보다시피 upvalue의 갯수는 0이다.

lua_register

#define lua_register(L,n,f) \
    (lua_pushstring(L, n), \
     lua_pushcfunction(L, f), \
     lua_settable(L, LUA_GLOBALSINDEX))

C 함수를 등록한다. n 인수는 함수의 이름 문자열, f 인수는 함수 포인터다.

lua_getregistry

#define lua_getregistry(L) lua_pushvalue(L, LUA_REGISTRYINDEX)

레지스트리 테이블을 가져와 스택의 맨 위에다 푸쉬한다.

lua_setglobal

#define lua_setglobal(L,s) \
    (lua_pushstring(L, s), lua_insert(L, -2), lua_settable(L, LUA_GLOBALSINDEX))

전역 변수의 값을 설정한다. 이 매크로를 수행하기 이전에 전역 변수에다 할당할 아이템을 스택에다 푸쉬해둬야 한다. 수행 후에는 이전에 푸쉬한 아이템이 팝된다.

lua_pushstring(L, "I'm a value");
lua_setglobal(L, "MyVariable");

lua_getglobal

#define lua_getglobal(L,s) \
    (lua_pushstring(L, s), lua_gettable(L, LUA_GLOBALSINDEX))

전역 테이블에서 s 변수를 가져와 스택의 맨 위에다 푸쉬한다.


kb/luaapimacro.txt · 마지막으로 수정됨: 2014/11/07 10:02 (바깥 편집)