#include <stdio.h>
int main()
{
const char* s = "Number: 420604953084";
long number;
sscanf(s, "Number: %ld", &number);
printf("Result: %ld", number);
return 0;
}
데스크톱에서 C ++ 11 (또는 예를 들어 here )로 컴파일 된이 코드 는 올바르게 반환됩니다.
Result: 420604953084
그러나 ARM Mbed 6.6으로 컴파일 한 결과는 다음과 같습니다.
(#include <mbed.h>)
...
Result: -301941924
누구에게 단서가 있습니까? 불행히도 이러한 것들은 Mbed에 전혀 문서화되어 있지 않습니다.
long 유형이 컴파일러에서 4 바이트 인 경우 . 나는 오류를 얻는 것이 합리적이라고 생각합니다.
unsigned long long 및 형식 코드 "lld"를 사용해보십시오 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다