![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]()
Здравствуйте.
Есть функция с переменным числом аргументов: Код:
Заранее благодарен.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 11.08.2015 в 17:32. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
http://www.cplusplus.com/reference/c...end/?kw=va_end
Т.е. когда va_arg вернет NULL - значит все.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]()
Такое можно применить, если переменные, передаваемые в функцию, не могут быть нулем. А как быть, если они могут быть нулем?
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Передать количество аргументов в качестве первого аргумента.
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]()
Понимаю, что можно самому передавать количество, но в данном случае было бы удобнее, чтоб это определялось автоматически.
Видел такое решение: Код:
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Аргументы ... всегда в стеке.
Это решение ищет 0. Стандартного способа подсчитать количество аргументов нет. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]()
Это точно?
Во многих местах не рекомендовали брать указатель и самому проходиться по нему, а использовать именно va_start, va_arg, va_end. И если это так, тогда зачем вообще нужны va_start, va_arg, va_end? а, да... выходит это тоже самое, что и предложил Stilet
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 11.08.2015 в 19:28. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
![]()
C++ и удобство - понятия несовместимые. Указатели - это что-то типа хака, который работает сегодня на этой платформе, где-то там в другом месте поломается, поэтому лучше пользовать va_start, va_arg, va_end и не загоняться по их реализации.
|
![]() |
![]() |
![]() |
#9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]()
Наверно так и буду делать. Изначально думал, что функцией с переменным числом аргументов это будет проще сделать.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Составить функцию, подсчитывающую количество слов списка, которые начинаются и оканчиваются одной и той же буквой | Dark Illusion | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 18.03.2013 23:26 |
узнать количество значений которые вернул SimpleDataSet | Kreadlling | БД в Delphi | 1 | 13.04.2012 09:47 |
как прервать выполнение всех функций которые были запущены setTimeout | Arassir | JavaScript, Ajax | 1 | 20.10.2011 16:20 |
узнать количество слов, которые содержат букву "у". C++ | kop | Помощь студентам | 0 | 14.05.2011 09:12 |
как работать с компанентами, которые были созданы программно? | morgonXak | Компоненты Delphi | 6 | 20.12.2010 18:38 |