Есть такой код:Код:QString str;unsigned short varU = 0xffff;short var = 0xffff;str.sprintf( "%d", varU ); // str = "65535"str.sprintf( "%d", var ); // str = "-1"Как sprintf понимает, что в одном случае надо создать строку "65535", а в другом "-1"??Смотрел исходники sprintf:Код:...QString subst; switch (*c) { case 'd': case 'i': { qint64 i; switch (length_mod) { case lm_none: i = va_arg(ap, int); break; case lm_hh: i = va_arg(ap, int); break; case lm_h: i = va_arg(ap, int); break; case lm_l: i = va_arg(ap, long int); break; case lm_ll: i = va_arg(ap, qint64); break; case lm_j: i = va_arg(ap, long int); break; case lm_z: i = va_arg(ap, size_t); break; case lm_t: i = va_arg(ap, int); break; default: i = 0; break; } subst = locale.d()->longLongToString(i, precision, 10, width, flags);...но для себя ответ так и не нашел)Люди!! Помогите разобраться!
|