C ++ sprintf из неизвестного аргумента - PullRequest
1 голос
/ 20 марта 2011

Попытайтесь написать нативную реализацию nodejs sprintf, совершенствуя при этом свои навыки в области c ++, я рассказал о том, как предоставить неизвестную длину аргументов для sprintf. Сначала я мог использовать vsprintf, но не мог найти, как его заполнить. в основном, привязка nodejs / v8 дает мне массив аргументов, который я могу преобразовать в вектор или что-то еще, но не знаю, как преобразовать его в va_list, ожидаемый vsprintf или любой другой альтернативой, которая могла бы заставить его работать.

Может ли кто-нибудь предложить мне стратегию?

1 Ответ

1 голос
/ 20 марта 2011

Обычно это зависит от компилятора и платформы.Вы можете взглянуть на реализацию va_start и va_arg и т. Д. Для выбранного вами компилятора и правильно поместить данные в стек, используя директиву asm.

Я бы этого не сделалтем не менее, если для вашей реализации важно имитировать sprintf - цикл для параметров и обрабатывать их по одному, объединяя результаты, это было бы гораздо более надежным и переносимым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...