136 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,882
|
||||||
1 | ||||||
Передача в функцию переменное кол-во аргументов15.03.2019, 11:10. Показов 2144. Ответов 13
Метки нет (Все метки)
Здравствуйте,
Пытаюсь понять, как передать в функцию переменное кол-во аргументов и грубо говоря считать их в функции. Делаю вот так: Однако, что то я не так делаю, я так понял, что из вызова функции в функцию передаются параметры непрерывным массивом, то есть ячейки в памяти идут одна за другой, но то ли я что то не так сделал, то ли я не правильно понял, потому что первый вывод в консоль указателя и значения получается нормальным, выводится "A1"... После сдвигания адреса на 1string, по идее указателю должен присвоится адрес в котором расположено значение "A2", но после попытки вывода выводится туева хуча символов и вообще все завершается с ошибкой...
0
|
15.03.2019, 11:10 | |
Ответы с готовыми решениями:
13
Передача переменного кол-ва аргументов Передать динамическое кол-во аргументов в функцию в рантайме Передача аргументов в функцию Передача аргументов в функцию |
330 / 145 / 56
Регистрация: 17.10.2015
Сообщений: 580
|
|
15.03.2019, 11:37 | 2 |
Ну дык конечно будет мусор писать, если Вы указатель ставите на адресс одиночной строки.
Для добычи параметров Вам с троеточия Вам понадобятся макросы, для работы с ... Учтите, что использовать на высоком уровне абстакции ... - считается плохим стилем
0
|
136 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,882
|
|
15.03.2019, 11:45 [ТС] | 3 |
Я тогда вообще не понял, как в функцию передать неизвесное кол-во аргументов.
Я находил пример и в ютубе и на какой то из сайтов, там вот юыл дан примерно такой способ.
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
15.03.2019, 12:17 | 4 |
Если рассматривать только сишный эллипсис, то здесь есть корректный пример: https://en.cppreference.com/w/cpp/utility/variadic
0
|
15.03.2019, 15:59 | 5 | |||||
передаются в стэк, а считываются в обратном порядке
Добавлено через 3 часа 39 минут сдается мне что со стрингами это не работает, т к размер стринга не фиксированный, ниже ф-ция суммирует int-ы, про стэк забудь
0
|
136 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,882
|
||||||
15.03.2019, 16:02 [ТС] | 6 | |||||
Решил не заморачиваться, и сделал квази-передачку неопределенного кол-ва string аргeментов в функцию
0
|
136 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,882
|
|
16.03.2019, 11:29 [ТС] | 8 |
Только что понял, что, то что я делаю ооочень малоэффективно.
Есть autowrap`овская COM функция, которая берет значение ячейки ексель по ее адресу, к примеру A1. Так как я не знаю, как с помощью этой функции получить диапазон значений, к примеру для A1:A10000, то решил просто сформировать обычный массив состоящий из последовательности адресов ячеек нужного диапазона, ну то есть A1, A2, A3...A100000 и поочередно подставлять в autowrap`вскую функцию и получая значения екселевской ячейки, записывать ее в свой массив, НО таким образом считывание всего 10тыщ ячеек занимает ~45 секунд. 45 секунд! Да в VBA всего три секунды потребуется, а 45 сек.
0
|
136 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,882
|
|
16.03.2019, 18:09 [ТС] | 10 |
Libxl, xlnt, да
Проблема в том, что запись и чтение должны происходить в активный открытый ексель.
0
|
136 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,882
|
|
16.03.2019, 21:40 [ТС] | 12 |
Спасибо!
Но, как я понимаю, для этого все равно придется ставить виртуальную машину jvs, и если так, то варианты с установкой машин не подходят.
0
|
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
|
|
17.03.2019, 04:16 | 13 |
0
|
136 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,882
|
|
08.04.2019, 19:53 [ТС] | 14 |
Подскажите пожалуйста, что то я запутался, создал функцию и соответсвенно Functiin.h и Function.cpp.
Но в function.h сама функция подчеркнкта и наеисано, что "Не найдено определение функции для Get_function". Но, при запуске это сообщение ни на что не влияет и вызываемая функция из main.cpp выдает результат. Не понимаю, почему тогда вылазит такое сообщение, если все работает ?
0
|
08.04.2019, 19:53 | |
08.04.2019, 19:53 | |
Помогаю со студенческими работами здесь
14
Передача аргументов в функцию Передача аргументов в функцию Передача аргументов в функцию Передача аргументов в функцию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |