다른 사람의 코드를 디버깅하고 있습니다. 나는 루아를 잘 모른다. string.byte에서 음의 반환 값이 가능한지 알고 싶습니다.Lua의 string.byte 함수가 음수 값을 반환 할 수 있습니까?
1
A
답변
3
번호 string.byte()의 범위는 포함 0..255해야한다; 설명서를 지정하지 않지만, 소스 코드는 분명하다 :
static int str_byte (lua_State *L) {
size_t l;
const char *s = luaL_checklstring(L, 1, &l);
ptrdiff_t posi = posrelat(luaL_optinteger(L, 2, 1), l);
ptrdiff_t pose = posrelat(luaL_optinteger(L, 3, posi), l);
int n, i;
if (posi <= 0) posi = 1;
if ((size_t)pose > l) pose = l;
if (posi > pose) return 0; /* empty interval; return no values */
n = (int)(pose - posi + 1);
if (posi + n <= pose) /* overflow? */
luaL_error(L, "string slice too long");
luaL_checkstack(L, n, "string slice too long");
for (i=0; i<n; i++)
lua_pushinteger(L, uchar(s[posi+i-1]));
return n;
}
lua-5.1.4/src/strlib.c에서, (C) 1,994에서 2,008 사이 Lua.org; BSD 라이센스에 의한
중요한 것은 호출 함수에 정수 값을 반환하는 데 사용되는 lua_pushinteger와 0..255 범위의 값으로 강제 변환하는 uchar입니다.
0
음수 값을 반환 할 수있는 것으로 보이지는 않지만 그다지 많은 노력을 기울이지 않았습니다. 여기
도움이 될 수있는 몇 가지 문서 링크입니다 :
0
당신이 루아 내부 동작에 관한 질문이있는 경우, 그 항상 가장 쉬운 방법은 소스 확인 : http://www.lua.org/source/5.1/lstrlib.c.html#str_byte (그래, 나는이 이해하는 것은 약간의 작업이 필요하다는 것을 깨닫는다;))
관련 문제
- 1. 함수가 두 개의 값을 반환 할 수 있습니까?
- 2. 함수가 두 개의 값을 반환 할 수 있습니까?
- 3. 함수가 둘 이상의 값을 반환 할 수 있습니까?
- 4. _open()은 유효한 음수 fd를 반환 할 수 있습니까?
- 5. actionPerformed가 값을 반환 할 수 있습니까?
- 6. 이벤트 처리기에서 값을 반환 할 수 있습니까?
- 7. Qt 신호가 값을 반환 할 수 있습니까?
- 8. R의 함수가 두 벡터를 반환 할 수 있습니까?
- 9. 연결된 소켓에서 read() 함수가 0 바이트를 반환 할 수 있습니까?
- 10. 함수가 객체를 반환 할 수 있습니까? Objective-C 및 NSMutableArray
- 11. Windows 용 Lua의 외래 확장을 어떻게 업그레이드 할 수 있습니까?
- 12. 내 C++ clock() 기반 함수가 음수 값을 반환하는 이유는 무엇입니까?
- 13. 함수에서 값을 반환 할 수 없습니까?
- 14. Scala에서 상수 표현식으로 음수 값을 가질 수 있습니까?
- 15. PostgreSQL은 함수가 반환 한 배열에서 선택할 수 있습니까?
- 16. DDD : 저장소가 부울 값을 반환 할 수 있습니까?
- 17. Factory 메서드의 반환 값을 올바르게 JsDoc 할 수 있습니까?
- 18. 내 컨트롤러에서 뷰 대신 값을 반환 할 수 있습니까?
- 19. C# 4에서 method_missing을 구현하고 실제로 값을 반환 할 수 있습니까?
- 20. SharePoint : 다른 목록의 열에서 필드 값을 반환 할 수 있습니까?
- 21. Codeigniter : 동일한 함수에서 여러 값을 반환 할 수 있습니까?
- 22. AS3 함수 : 루프 내에서 값을 반환 할 수 있습니까?
- 23. 모든 키 값을 검색하고 키를 반환 할 수 있습니까?
- 24. .bat 파일이 SQL 쿼리를 실행하고 값을 반환 할 수 있습니까?
- 25. 함수가 JavaScript의 결과와 결과를 반환 할 때
- 26. 배열의 음수 인덱스 값을 금지해야합니다.
- 27. preg_match 음수 및 음수
- 28. 음수 값을 피하는 방법은 무엇입니까?
- 29. 이 재귀 함수가 열광 할 수 있습니까?
- 30. 음수 값을 출력하는 C++ 코드
모든 링크 나 DOCO를 그걸 확인해 볼까? 나는 당신을 믿습니다. 제가보기에는 그 버그를 설명 할 수 있습니다. 그러나 나는 지적하고 싶은 것이있다. – rfeak
문서는 그 자체의 자부심을 자랑합니다. str_byte에 대한 소스 코드를 삽입합니다. str_byte는 uchar로 변환 된 후 값을 반환하기 전에 정수로 변환되는 것을 볼 수 있습니다. – swdunlop
그게 내가 필요한 것입니다. 고맙습니다! – rfeak