사용자 도구

사이트 도구


kb:luaauxapiuserdata

차이

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

차이 보기로 링크

kb:luaauxapiuserdata [2014/11/07 09:59] (현재)
줄 1: 줄 1:
 +====== LuaAuxApi/​UserData ======
 +유저데이터 다루기
 +
 +===== luaL_newmetatable =====
 +<code cpp>
 +int luaL_newmetatable (lua_State *L, const char *tname);
 +</​code>​
 +메타테이블을 생성해서,​ 스택에다 푸쉬한다. tname 인수는 이 메타 테이블을 가리키는 데 사용할 일종의 별명(alias)이다. 이 함수를 호출하면 스택에 메타테이블이 푸쉬되는 것 말고도, 레지스트리에 별명과 메타테이블이 서로를 키로서 추가된다. 말이 좀 이상한데,​ 대강 다음과 같다.
 +<​code>​
 +registry[alias] = metatable
 +registry[metatable] = alias
 +</​code>​
 +
 +
 +===== luaL_getmetatable =====
 +<code cpp>
 +void luaL_getmetatable (lua_State *L, const char *tname);
 +</​code>​
 +주어진 별명을 가진 메타테이블을 레지스트리로부터 읽어와 스택에다 푸쉬한다.
 +
 +
 +===== luaL_checkudata =====
 +<code cpp>
 +void *luaL_checkudata (lua_State *L, int ud, const char *tname);
 +</​code>​
 +ud 인덱스의 아이템이 주어진 별명의 메타 테이블을 가진 userdata 인지를 체크한다. 맞다면 userdata의 포인터를 반환하고,​ 아니라면 NULL을 반환한다. userdata가 아닌 경우에도 NULL을 반환한다.
 +
 +----
 +  * see also [[LuaAuxApi]]
  
kb/luaauxapiuserdata.txt · 마지막으로 수정됨: 2014/11/07 09:59 (바깥 편집)