안녕을 얻을 수있는 테이블은 다음과 같습니다액세스 중첩 테이블은 내가 C. 에 루아에서 보낸 중첩 된 테이블에 액세스하려고 값
arg =
{
MagicNumber = {MagicNumber, 0},
ProdNum = {ProdNum, 1},
LetterR = {LetterR, 0xc},
Revision = {Revision, 0xd},
Space1 = {Space1, 0xe},
MnfctrCode = {MnfctrCode, 0xf},
Hyphen1 = {Hyphen1, 0x12},
ZeroCode = {ZeroCode, 0x13},
Hyphen2 = {Hyphen2, 0x15},
MnfctrMnth = {MnfctrMnth, 0x16},
MnfctrYear = {MnfctrYear, 0x18},
SerialNum = {SerialNum, 0x1a},
Space2 = {Space2, 0x1e},
ChkSum = {ChkSum, 0x1f},
}
테이블 안에 모두 정수 값은, 그리고 테이블의 키는 문자열입니다. 내 코드는 ollows과 같습니다 난 아무것도없는
lua_pushnil(L);
while(lua_next(L, -2) != 0)
{
field = lua_tostring(L, -2);
printf("\n %d field = %s", i, field);
wrData[i-1] = lua_tonumber(L,-1);
printf("\n data = 0x%x", wrData[i-1]);
lua_pop(L, -1);
i++;
}
암, 값이 내가 돌아 0x0
를 얻을 수 있기 때문이다.
'lua_tonumber은 (L, -1)'잘못이지 수 (사람들은 arg' 테이블'에서 키 - 값 쌍의 값입니다) –
' lua_pop (L, -1)'잘못된 것입니다. 슬롯 위치가 아니라 슬롯 수가 필요합니다. – lhf
답 해 주셔서 감사합니다. 여기에서 답을 얻었습니다. http://stackoverflow.com/questions/27037854/lua-c-read-nested-tables – SanR