sprintf1

Автор mihail_1, 14 августа 2012, 11:21:04

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

mihail_1

Нужна (для отладок) такая странная функция. которая вызывается в программе вместо sprintf, и просто вызывает sprintf, передавая ей те параметры, что были переданы ей.
Непомню как такое пишется на Си. Кто помнит напишите.

qupl

Смотри в cstdarg .   В объявлении функции в конце многоточие (...) на месте произвольного количества аргументов.

mihail_1

Про многоточие я знаю, но не помню как их передать. Как вызвать sprintf c любым количеством аргументов? (разумеется первые два есть всегда, а дальше без ограничения)

qupl

Как передать в sprintf ? Как обычно, подставив в вызов.  Про cstdarg  прочитал? Там есть макросы для получения этих "произвольных параметров". 
Если совсем лень, то даже Педивикия пишет об этом.

mihail_1

Я наверно не понятно спрашиваю.
Я понимаю как в sprintf1 получить и разобрать аргументы, но я непонимаю как вызвать sprintf с произвольным количесвом аргументов. Как это сделать с любым конкретным количеством аргументов понятно, но сколько бы вариантов я зарание не предусмотрел все равно потом потребуются другие. Надо одним вызовом sprintf из sprintf1 поддержать любой список аргументов который будет передаваться sprintf1 для sprintf

qupl

Именно sprintf неизвестное количество не передашь. Но есть vsprintf. которой можно передать весь список аргументов va_list.

mihail_1

Да, это то что нужно. Спасибо.