-18 / 0 / 0
Регистрация: 23.06.2014
Сообщений: 29
|
|
1 | |
Как передать в функцию заранее неизвестное число параметров?01.07.2014, 20:47. Показов 12445. Ответов 21
Метки нет (Все метки)
как передать в функцию "func" разное число параметров? писать для каждого перегрузку, или можно передать array int??
0
|
01.07.2014, 20:47 | |
Ответы с готовыми решениями:
21
Как принять заранее неизвестное количество аргументов и передать их в конструктор? Как передать в функцию переменное число параметров Возвратить данные из функции, которая имеет заранее неизвестное количество входных параметров Вставить в пользовательскую форму VBA неизвестное заранее число Checkbox |
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
|
|
01.07.2014, 20:51 | 2 |
Разное число однотипных или разнотипных?
0
|
-18 / 0 / 0
Регистрация: 23.06.2014
Сообщений: 29
|
||||||
01.07.2014, 21:01 [ТС] | 3 | |||||
однотипных, все равно в стеке все 32битное.
Добавлено через 28 секунд и еще вопрос почему так нельзя
0
|
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
|
|
01.07.2014, 21:01 | 4 |
Ну тогда передавай ссылку на массив с этими параметрами и их количество.
0
|
-18 / 0 / 0
Регистрация: 23.06.2014
Сообщений: 29
|
|
01.07.2014, 21:04 [ТС] | 5 |
Нет не получиться, передасть ссылка на массив и все
push array call 0x12345678 а надо push 1 push 2 push 3 ... push n call 0x12345678
0
|
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
|
|
01.07.2014, 21:08 | 6 |
Ассемблер-то тут причём?
Чем плоха ссылка? Надо обязательно в стек их помещать? Используй тогда многоточие. http://ci-plus-plus-snachala.ru/?p=63
1
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
|
||||||
01.07.2014, 21:12 | 7 | |||||
Почитайте это
http://www.rsdn.ru/forum/cpp/418970.1 Вот пример оттуда
0
|
-18 / 0 / 0
Регистрация: 23.06.2014
Сообщений: 29
|
|
01.07.2014, 21:12 [ТС] | 8 |
то что надо!!! просто параметры передаются в не управляеймый код(
0
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
|
01.07.2014, 21:14 | 9 |
Не, не надо это читать, разве что в качестве примера, как делать НЕ нужно. Не нужно доставать C'шное наследие из гроба. А нужно или, как уже посоветовали, использовать контейнер ( тот же std::vector ), или variadic templates
0
|
-18 / 0 / 0
Регистрация: 23.06.2014
Сообщений: 29
|
|||||||||||
01.07.2014, 21:23 [ТС] | 10 | ||||||||||
но допустим
даже точнее будет я буду считывать параметры из памяти, где их будет хз сколько, а потом передавать в F Добавлено через 5 минут
0
|
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
|
||||||
01.07.2014, 21:30 | 12 | |||||
В таком виде - никак. Нужно, чтобы вызываемая из твоей функции поддерживала va_list, если такого нет, то никак.
Variadic templates тут только помогут, но это только С++11.
Лучше расскажи про природу этой F подробнее.
0
|
-18 / 0 / 0
Регистрация: 23.06.2014
Сообщений: 29
|
|
01.07.2014, 21:48 [ТС] | 13 |
F функция, неуправляемом функция в коде которая собирает пакет, для отправки по сети... вот и все, тоесть передаю int i 1, s i 2, и тд единственное в эту функцию обязательно передается параметр для сборки пакета например dddsc(как с принт ф) и она по нему собирает пакет, самое интересное что она написана на c++ тоже, жалко видимо придется писать множество перегрузов вызова, или на асме(((
0
|
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
|
|
01.07.2014, 22:08 | 14 |
0
|
-18 / 0 / 0
Регистрация: 23.06.2014
Сообщений: 29
|
|||||||||||
01.07.2014, 22:36 [ТС] | 15 | ||||||||||
Вы меня все таки все обманули в длл пишем:
0
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
|
01.07.2014, 22:56 | 16 |
Ох, лол, вот уж воистину: "У меня нет времени чтобы точить пилу, мне нужно пилить"
1
|
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
|
||||||||||||||||
01.07.2014, 23:58 | 17 | |||||||||||||||
Хехе. Вообще-то это совсем другая ситуация. Не зря же спрашивали про сигнатуру. Количество аргументов в этом варианте фиксировано.
Если так, то можно вообще без асма:
Что касается твоего варианта с ассемблером, то по поводу него вообще никто не высказывался. Ассемблер - это другой разговор совсем. Естественно будет работать, если сделать получение параметров на асме. Так что про "обманули" - это неправда
0
|
-18 / 0 / 0
Регистрация: 23.06.2014
Сообщений: 29
|
||||||
02.07.2014, 08:29 [ТС] | 18 | |||||
почему фиксированное? например
0
|
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
|
|
02.07.2014, 16:29 | 19 |
Я еще рас скажу, про ассемблер тут никто не высказывался. Под словом "нельзя" имелись в виду исключительно средства языка
1
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
|
24.06.2019, 10:44 | 20 |
Voivoid, да, будем пользоваться громоздким и неудобныым по написанию кодом.
0
|
24.06.2019, 10:44 | |
24.06.2019, 10:44 | |
Помогаю со студенческими работами здесь
20
Как передать в функцию указатель на двумерный массив заранее неизвестного размера? функция на неизвестное число параметров Как передать несколько параметров в функцию Как создать неизвестное заранее количество обьектов? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |