Название: Вопрос по методу sprintf класса QString! Отправлено: noi от Сентябрь 26, 2009, 14:37 Есть такой код:
Код: QString str; Как sprintf понимает, что в одном случае надо создать строку "65535", а в другом "-1"?? Смотрел исходники sprintf: Код: ... но для себя ответ так и не нашел) Люди!! Помогите разобраться! Название: Re: Вопрос по методу sprintf класса QString! Отправлено: KADABRA от Сентябрь 26, 2009, 15:41 В обоих случаях значение приводится к типу int.
В varU значение 65535, в var - -1. В чём заключается проблема? Название: Re: Вопрос по методу sprintf класса QString! Отправлено: noi от Сентябрь 26, 2009, 16:20 Вроде разобрался. Значения переменных var и varU приводятся к int во время передачи в функцию, т.е. в стеке лежат уже преобразованные значения.
Название: Re: Вопрос по методу sprintf класса QString! Отправлено: zenden от Сентябрь 26, 2009, 20:21 А как избавиться от этого приведения типов? :-\
Где можно прочитать про такое поведение при вызове функции? Название: Re: Вопрос по методу sprintf класса QString! Отправлено: Igors от Сентябрь 27, 2009, 13:08 Вроде разобрался. Значения переменных var и varU приводятся к int во время передачи в функцию, т.е. в стеке лежат уже преобразованные значения. Да, "приводится к старшему". Так же и float приводится к double при передаче на стек, поэтому "%g" работает для обоих. Могу ошибаться но помнится мне это стандарт языка для функций принимающих переменное число параметров (т.е. это не специфика printf) |