2013-10-23 3 views
3

루아에서 C 함수에서 여러 매개 변수를 가져 오려고합니다.루아 C 함수에서 여러 매개 변수를 반환

static int myFunc(lua_State *state) 
{ 
    lua_pushnumber(state, 1); 
    lua_pushnumber(state, 2); 
    lua_pushnumber(state, 3); 

    return 1; 
} 

과 같은 루아에서 호출 : 나는 루아 스택에 여러 인수를 추진하려

local a,b,c = myFunc() 

불행하게도 b와 c 값은 전무하다. 필자가 필요로하는 모든 값을위한 함수를 작성하고 싶지는 않지만 Luas 기능을 활용하여 함수에서 여러 인수를 검색합니다.

답변

6

C 함수의 반환 값은 반환되는 값의 수입니다.

return 3;으로 변경하면 도움이됩니다.

static int l_sin (lua_State *L) { 
    double d = lua_tonumber(L, 1); /* get argument */ 
    lua_pushnumber(L, sin(d)); /* push result */ 
    return 1; /* number of results */ 
} 
+0

오 감사합니다 : 여기

는 루아에서 프로그램에서 참조가 있습니다. 함수 호출이 괜찮 으면이 상태라고 생각했습니다. – Objective

+2

@Objective 다음 번 추측 대신에 참조를 체크인하는 것이 나의 겸손한 제안 일 것입니다. :) –

+5

@ 목적, http://www.lua.org/manual/5.2/manual.html#lua_C 기능을 참조하십시오. – lhf

관련 문제