|
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375
|
|
Функции с переменным числом аргументов28.11.2017, 19:35. Показов 2254. Ответов 13
Метки нет (Все метки)
Ребята, подскажите пожалуйста, где можно обстоятельно и подробно прочитать про использовании в C++ функций с несколькими аргументами.
Интересуют такие штуки, как va_list, va_start, va_end и тому подобное.
0
|
|
| 28.11.2017, 19:35 | |
|
Ответы с готовыми решениями:
13
Функции с переменным числом аргументов
Шаблон с переменным числом аргументов, и возвращаемое значение функции |
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 28.11.2017, 19:43 | |
|
0
|
|
|
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375
|
||||||
| 28.11.2017, 21:43 [ТС] | ||||||
|
Там очень мало и невнятно.
Пока что понял, что не совсем с переменным числом параметров такая функция может быть. По крайней мере один аргумент должен присутствовать или же это не так? Грубо говоря, возможно ли через вот эти VA прибабахи, правильно обработать вот такую функцию:
И еще, я так понял, что такие функции проектируются, исходя из однотипности списка передаваемых им аргументов. То есть, даже эти VA прибабахи не способны правильно обработать вызов такой функции, если одним из аргументов будет char, а другим double. Правильно ли я понимаю или же нет. И вообще как современный C++ рассматривает такие функции, как пережиток, ну типа как ключевое слово register, от которого вот-вот откажутся, или же как вполне ходовую штуку.
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|||
| 28.11.2017, 21:50 | |||
|
0
|
|||
|
|
|
| 28.11.2017, 21:54 | |
|
Просто Саша, а нафиг они нужны-то? В си++ есть и полиморфизм и перегрузка операторов и шаблоны и много всякой фигни! Я осмелюсь утверждать, что если тебе в программе понадобились VA прибабах, то ты явно не теми методами решаешь свою задачу, а она на самом деле имеет более простое решение.
Итак, внимание вопрос. Что у тебя за задача?
0
|
|
|
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375
|
|
| 28.11.2017, 22:00 [ТС] | |
|
Да задача то у меня состоит в том, чтобы описать методику работы с функциями с переменным числом аргументов.
Добавлено через 4 минуты Грубо говоря в C++ такого нет, что передаешь в функцию переменное число аргументов, а эта функция теми или иными способами должны: 1) Узнать количиство переданных аргументов 2)Для каждого переданного аргумента по его порядковому номеру определить его тип. Я правильно понимаю?
0
|
|
|
|
|
| 28.11.2017, 22:02 | |
|
Да это так.
0
|
|
|
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375
|
|
| 28.11.2017, 22:20 [ТС] | |
|
Ну так вот я и хочу найти какой-нибудь учебник, где четко и ясно говорилось, что на самом деле не совсем с произвольным, а по крайней мере с одним обязательным аргументом, откуда (ну это уже будет дальше сказано), вот VA штуки и берут эти аргументы, но только чтобы все это было приведено в какую-то цельную систему, а так пока читаешь, то просто какие-то отдельные куски информации, а цельной картины никто не дает.
0
|
|
|
|
|
| 28.11.2017, 22:26 | |
|
Потому что как я уже выше сказал, для обучения эти штуки не нужны.
1
|
|
|
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375
|
|||||||
| 28.11.2017, 22:35 [ТС] | |||||||
|
Мне нужно вот реферат типа краткого сообщения по этой теме, и в нем я не смогу просто вот так написать, что мол для обучения эти штуки не нужны. Добавлено через 3 минуты И кстати вот ещё тоже такой вопрос. В C++ возможно определние функций вот с таким прототипом
0
|
|||||||
|
|
||
| 28.11.2017, 22:39 | ||
|
Ну окей, для доклада нужны, но совсем без начальных аргументов f(...) типа, ты её не применишь. Так и скажи.
Добавлено через 2 минуты
0
|
||
|
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375
|
|
| 28.11.2017, 22:48 [ТС] | |
|
Вот ты скажи лучше, вот такое начало реферата потянет?
В языке программирования C++ имеется возможность определять функции с переменным числом аргументов. Это означает, что и одна и та же функция может отрабатывать как три, так и четыре, и более аргументов. Переменное число аргументов – это звучит слишком громко и весьма самонадеянно. Чтобы такая функция была хоть как-то полезна, в ней должны быть предусмотрены обычные аргумента, по крайней мере один обычный аргумент. Вот именно такой класс функций, в которых имеется по крайней мере один обычный аргумент, указываемый явно в определении мы и будем называть функциями с переменным числом аргументов, а функции, в которых такого явно определённого аргумента нет, мы просто назовём побочным продуктом создания компиляторов. И ещё одно важное замечание, касающееся таких функций. Когда Вы создаёте функцию с переменным числом параметров, это вовсе не означает, что Вы сможете передавать ей какие-угодно параметры. Переменное число вовсе не означает что попало, а только лишь то, что имеется некоторая, но вовсе не абсолютная свобода, относительно числа и типов передаваемых такой функции аргументов. Как известно, свобода не есть синоним вседозволенности и никакая свобода ещё не отменила дисциплину. Так вот, если говорить о функциях с переменным числом аргументов, то число это переменное только для функции, которая узнает о числе и типах аргументах только при своём вызове, а вот для программиста это число всегда должно быть известным, равно как и типы аргументов, передаваемых таким функциям, тоже должно быть известно. Я дальше планирую развить эту тему и очень конкретно и вдумчиво описать, ну пусть на элементарном уровне студента.
0
|
|
|
|
|
| 28.11.2017, 23:05 | |
|
норм, чё!
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 28.11.2017, 23:40 | |
|
Эти функции скорее к C относятся. А в C++ многоточие в шаблоне.
0
|
|
| 28.11.2017, 23:40 | |
|
Помогаю со студенческими работами здесь
14
Написать функцию с переменным числом аргументов
Рекурсивная функция с переменным числом аргументов на С++98
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|