Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2015, 00:04   #31
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,342
По умолчанию

Функции не существуют сами по себе, они служат для какой-то цели.
Похоже сия цель тайна великая есть...
waleri вне форума Ответить с цитированием
Старый 13.08.2015, 00:38   #32
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Никакой тайны нету, просто нужно передавать массив чисел, который может быть разного размера, а функция уже проходиться по этим числам и выполняет соответствующие действия.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 13.08.2015, 04:07   #33
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Это точно?

Во многих местах не рекомендовали брать указатель и самому проходиться по нему, а использовать именно va_start, va_arg, va_end.

И если это так, тогда зачем вообще нужны va_start, va_arg, va_end?


а, да... выходит это тоже самое, что и предложил Stilet
Предоположу, что функция может заинлайниться и логика сломается (в случае, когда не используются va_start, va_arg, va_end). Проверить не сложно, но времени на проверку нет.
220Volt вне форума Ответить с цитированием
Старый 13.08.2015, 08:05   #34
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Конечная цель - это, чтоб было удобно и не в ущерб по скорости выполнения кода.
Вы занимаетесь преждевременной оптимизацией. Врядли в этом месте будет узкое место.
Croessmah вне форума Ответить с цитированием
Старый 13.08.2015, 08:46   #35
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Никакой тайны нету, просто нужно передавать массив чисел, который может быть разного размера, а функция уже проходиться по этим числам и выполняет соответствующие действия.
Код:
void MyFunction(float *Array, int dimension)
{
..................
}
Array - передаваемый массив.
dimension - его размер.
Не подойдёт?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 13.08.2015, 08:54   #36
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Никакой тайны нету, просто нужно передавать массив чисел, который может быть разного размера, а функция уже проходиться по этим числам и выполняет соответствующие действия.
Сталкивался с подобной штукой, но, конечно, не для передачи в функцию, а для закатывания вектора в бинарник. Просто перед каждым элементом вставлял элемент известной величины, в который писал размер следующего элемента. Понятно, что в вашем случае это оверкилл лютый, но я же не знаю, для чего оно вам надо. Мб как раз тоже для сериализации.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
crazy horse вне форума Ответить с цитированием
Старый 13.08.2015, 10:27   #37
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
C++ и удобство - понятия несовместимые. Указатели - это что-то типа хака, который работает сегодня на этой платформе, где-то там в другом месте поломается, поэтому лучше пользовать va_start, va_arg, va_end и не загоняться по их реализации.
элипсисы - это си, а не с++ если что.
на плюсах вполне себе удобные и надежные вариадики.
_Bers вне форума Ответить с цитированием
Старый 13.08.2015, 10:33   #38
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
элипсисы - это си, а не с++ если что.
на плюсах вполне себе удобные и надежные вариадики.
Если про-плюсы. То, как уже сказал crazy horse, лучше использовать STL. В плюсах, она входит в стандарт. В любом случае, выбирать Вам.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 13.08.2015, 17:14   #39
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Всем большое спасибо за ответы, буду думать.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 14.08.2015, 00:16   #40
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Если про-плюсы. То, как уже сказал crazy horse, лучше использовать STL. В плюсах, она входит в стандарт. В любом случае, выбирать Вам.
для того, что бы узнать количество аргументов,
которые были переданы в функцию,
STL не нужен.

(см #19)
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить функцию, подсчитывающую количество слов списка, которые начинаются и оканчиваются одной и той же буквой 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