사용자 도구

사이트 도구


kb:luaapimacro

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

kb:luaapimacro [2014/11/07 10:02] (현재)
줄 1: 줄 1:
 +====== LuaApi/​Macro ======
 +매크로들
 +
 +===== lua_pop =====
 +<code cpp>
 +#define lua_pop(L,​n) lua_settop(L,​ -(n)-1)
 +</​code>​
 +스택의 맨 위에 있는 아이템을 팝한다.
 +
 +
 +===== lua_pushcfunction =====
 +<code cpp>
 +#define lua_pushcfunction(L,​f) lua_pushcclosure(L,​ f, 0)
 +</​code>​
 +C 함수를 스택에다 푸쉬한다. 보다시피 upvalue의 갯수는 0이다.
 +
 +
 +===== lua_register =====
 +<code cpp>
 +#define lua_register(L,​n,​f) \
 +    (lua_pushstring(L,​ n), \
 +     ​lua_pushcfunction(L,​ f), \
 +     ​lua_settable(L,​ LUA_GLOBALSINDEX))
 +</​code>​
 +C 함수를 등록한다. n 인수는 함수의 이름 문자열, f 인수는 함수 포인터다.
 +
 +
 +===== lua_getregistry =====
 +<code cpp>
 +#define lua_getregistry(L) lua_pushvalue(L,​ LUA_REGISTRYINDEX)
 +</​code>​
 + ​레지스트리 테이블을 가져와 스택의 맨 위에다 푸쉬한다.
 +
 +
 +===== lua_setglobal =====
 +<code cpp>
 +#define lua_setglobal(L,​s) \
 +    (lua_pushstring(L,​ s), lua_insert(L,​ -2), lua_settable(L,​ LUA_GLOBALSINDEX))
 +</​code>​
 +전역 변수의 값을 설정한다. 이 매크로를 수행하기 이전에 전역 변수에다 할당할 아이템을 스택에다 푸쉬해둬야 한다. 수행 후에는 이전에 푸쉬한 아이템이 팝된다.
 +<code cpp>
 +lua_pushstring(L,​ "​I'​m a value"​);​
 +lua_setglobal(L,​ "​MyVariable"​);​
 +</​code>​
 +
 +
 +===== lua_getglobal =====
 +<code cpp>
 +#define lua_getglobal(L,​s) \
 +    (lua_pushstring(L,​ s), lua_gettable(L,​ LUA_GLOBALSINDEX))
 +</​code>​
 +전역 테이블에서 s 변수를 가져와 스택의 맨 위에다 푸쉬한다.
 +
 +----
 +  * see also [[LuaApi]]
  
kb/luaapimacro.txt · 마지막으로 수정됨: 2014/11/07 10:02 (바깥 편집)