내용으로 건너뛰기
사용자 도구
로그인
사이트 도구
도구
문서 보기
이전 판
백링크
최근 바뀜
미디어 관리
사이트맵
로그인
최근 바뀜
미디어 관리
사이트맵
기술자료
작업공간
개인공간
사이트맵
추적:
kb:luaauxapimisc
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== LuaAuxApi/Misc ====== 기타 ===== luaL_openlib ===== <code cpp> // lauxlib.h 파일에 정의 typedef struct luaL_reg { const char *name; lua_CFunction func; } luaL_reg; void luaL_openlib (lua_State *L, const char *libname, const luaL_reg *l, int nup); </code> 패키지(함수의 묶음)를 등록할 때 사용하는 함수다. 인수의 역할은 다음과 같다. * L : 루아 스테이트 객체 * libname : 패키지의 이름 * l : 등록할 함수들의 이름, 포인터 배열. 배열의 마지막 항목은 {NULL,NULL}의 형태이어야 한다. * nup : 각각의 함수가 가질 upvalue의 갯수 libname 문자열이 NULL이 아닌 경우에는 해당하는 이름의 전역 테이블이 생성되고(이미 같은 이름의 테이블이 존재한다면 그것을 이용한다), 그 테이블 안에 모든 함수들이 등록된다. libname 문자열이 NULL일 경우에는, 테이블을 생성하는 것이 아니라, 스택의 맨 위에, 함수들을 집어넣을 테이블이 있는 것으로 간주한다. 사용법 예제를 보자. <code cpp> static const struct luaL_reg arraylib[] = { {"new", newarray}, {"set", setarray}, {"get", getarray}, {"size", getsize}, {NULL, NULL} }; lua_openlib(L, "array", arraylib, 0); </code> <code lua> a = array.new() print(a); print(array.size(a)); for i=1,1000 do array.set(a, i, 1/i); end print(array.get(a, 10)); </code> ===== luaL_findstring ===== <code cpp> int luaL_findstring (const char *st, const char *const lst[]); </code> 문자열의 배열 lst에서 특정 문자열 st를 찾아서, 배열 인덱스를 반환하는 함수다. lst 문자열 배열은 NULL 문자열로 끝나야 한다. 문자열을 찾을 수 없었다면 -1을 반환한다. 그냥 함수 자체를 보는 것이 차라리 이해가 빠를 듯. <code cpp> int luaL_findstring (const char *name, const char *const list[]) { int i; for (i=0; list[i]; i++) if (strcmp(list[i], name) == 0) return i; return -1; /* name not found */ } </code> ---- * see also [[LuaAuxApi]]
kb/luaauxapimisc.txt
· 마지막으로 수정됨: 2014/11/07 10:00 (바깥 편집)
문서 도구
문서 보기
이전 판
백링크
맨 위로