오늘 저는 ARM 툴체인 EABI (크로스 컴파일러)에서 이상한 문제에 직면했습니다.ARM EABI toolchain
Ths 문제는 내가 부동 소수점 값을 문자열로 변환하기 위해 snwprintf()를 사용하려고 할 때, 나는 통과 한 실제 부동 소수점 값이없는 일부 정크 문자열을 얻고있었습니다. 이 같은
smaple 코드 looke는 :
float floatValue = 1.0;
snwprintf (buffer, bufferSize, _T("%g"), floatValue);
그때 snwprintf을 디버깅하고 난 변수 인수 목록 (va_arg를)은 정확한 데이터 값을 가리키는되지 않는다는 것을 알게되었습니다. 그리고 메모리를 덤프함으로써 우리는 가변 인수 목록에있는 정확한 데이터를 찾을 수있었습니다. va_arg가 가리켜 야하는 데이터는 다릅니다.
integre 값이 정상적으로 작동하므로 이것이 endianess 문제라고 생각하지 않습니다. 문제는 이중 값에만 있습니다.
누구든지이 호에서 저를 도울 수 있습니까?
2 배로 % lg 하시겠습니까? 그렇지 않으면 스택이나 전달 된 매개 변수에 두 배나 많은 양을 넣을 수 있으며 printf는 해당 매개 변수의 절반 만 사용합니다. GCC 명령 줄에 놓아 두었습니까? –