scanf
과 uint8_t
을 사용하려고하면 결과가 엉망입니다. int
을 사용하면 예상되는 출력이 "08 - 15"가됩니다. uint8_t
을 사용하면 "00 - 15"가됩니다.scanf가 uint8_t로 스캔 할 수 없습니다.
const char *foo = "0815";
uint8_t d1, d2; // output: 00 - 15 (!!!)
// int d1, d2; // output: 08 - 15
sscanf(foo, "%2d %2d", &d1, &d2);
printf("%02d - %02d\n", d1, d2);
저는 GCC를 사용하고 있습니다.
@wallyk : "편집"버튼을 클릭하여 오타를 수정할 수 있습니다. –
물론, 나머지 코드는 완전히 익숙하지 않았기 때문에 새로운 컴파일러 기능인지 확실하지 않았습니다. – wallyk
마지막 지점에서 꼭 그렇지는 않습니다. 'printf'와'va_args' 둘 모두의 구현에 따라, "잘 작동"할 수도 있고, 실패 할 수도 있습니다. – slugonamission