스파이더멍키 라이브러리를 사용하다가..
printf() 함수를 구현할 일이 생겨서 열심히 관련 문서들을 보는데..
이게 argv가 그냥 jsval 배열로 넘어와서 va_list 형을 사용하는 vsprintf에 바로 대입하면..
알 수 없는 기괴한 문자가 출력되는게 아닌가..
가변인자는 써야겠고.. 넘어오는건 이상한 배열로 넘어오니..
혹시 변환해 주는 무언가가 있나 해서..
열심히 스파이더멍키 도큐먼트를 읽어 봤지만..
전혀!! 발견할 수가 없었다..
그래서!!..
달리 방법이 있겠는가..
직접 va_list를 구현하는 수 밖에.. ㅡ_ㅡ..
어차피 va_list라는게 배열일 뿐임으로..
구현하는거야 별로 어렵지 않았다..
요렇게 그냥 배열로 구현해도 문제가 없는게..
C언어에서 함수로 인자를 넘길때..
int, double, char, short 이런 형들은 그냥 4바이트로 뭉쳐서..
포인터가 아닌 값을 복사해서 넘기기 때문이고..
스트링의 경우야..
포인터를 전달하기 때문에..
그냥 포인터를 복사해 넣으면 끝이다..
여튼..
va_list는 옛날에 운영체제 공부할때 그 원리를 봤기 때문에..
여기까진 무리없이 진행 했다..
그런데..!!
라는 해괴한 에러가 나는게 아닌가..
그래서!!..
혼자 어디가 잘못됬는지 찾아 볼라고..
별 쇼를 하다가..
구글신께 물어본 결과..
VS의 버그란다 ㅡ_ㅡ;;..
그래서..
double _fltused = 0.;
이거 한문장 넣고 해결 봤다 ㅡ_ㅡ..
printf() 함수를 구현할 일이 생겨서 열심히 관련 문서들을 보는데..
이게 argv가 그냥 jsval 배열로 넘어와서 va_list 형을 사용하는 vsprintf에 바로 대입하면..
알 수 없는 기괴한 문자가 출력되는게 아닌가..
가변인자는 써야겠고.. 넘어오는건 이상한 배열로 넘어오니..
혹시 변환해 주는 무언가가 있나 해서..
열심히 스파이더멍키 도큐먼트를 읽어 봤지만..
전혀!! 발견할 수가 없었다..
그래서!!..
달리 방법이 있겠는가..
직접 va_list를 구현하는 수 밖에.. ㅡ_ㅡ..
어차피 va_list라는게 배열일 뿐임으로..
구현하는거야 별로 어렵지 않았다..

C언어에서 함수로 인자를 넘길때..
int, double, char, short 이런 형들은 그냥 4바이트로 뭉쳐서..
포인터가 아닌 값을 복사해서 넘기기 때문이고..
스트링의 경우야..
포인터를 전달하기 때문에..
그냥 포인터를 복사해 넣으면 끝이다..
여튼..
va_list는 옛날에 운영체제 공부할때 그 원리를 봤기 때문에..
여기까진 무리없이 진행 했다..
그런데..!!
R6002
- floting point not loaded
- floting point not loaded
라는 해괴한 에러가 나는게 아닌가..
그래서!!..
혼자 어디가 잘못됬는지 찾아 볼라고..
별 쇼를 하다가..
구글신께 물어본 결과..
VS의 버그란다 ㅡ_ㅡ;;..
그래서..
double _fltused = 0.;
이거 한문장 넣고 해결 봤다 ㅡ_ㅡ..