|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.07.2012, 18:05 | #1 |
Пользователь
Регистрация: 09.07.2012
Сообщений: 11
|
Передача в функцию переменного кол-ва аргументов РАЗНЫХ типов
Good Day Everyone!
Пишу прогу под контроллер и в связи с особенностями архитектуры столкнулся с такой проблемой. Есть несколько переменных char [] (ASCII строки) при чём каждая может содержать просто текст типа "ля-ля-ля", а может и иметь токен prinft-типа "%d" или "%f". После массивов char-ов идут переменные типа int или float значения которых нужно подставить вместо "%d" или "%f". То есть для примера: Код:
то есть как видите, нужно сделать свой аналог функции printf проблема в том что при использовании va_list-va_start жёстко задаётся только один тип данных, а у меня их три (1 - строка, 2 - int, 3 - float) гугл спрашивал. он не знает. напомню что пишу под контроллер, поэтому БЕЗ классов и С++ вещей, то есть чистый ANSI C. кто подскажет хотя бы как передать и разобраться внутри функции где какая переменная какого типа буду ДИКО благодарен заранее спасибо Последний раз редактировалось stranger84; 10.07.2012 в 10:41. |
09.07.2012, 20:36 | #2 |
Форумчанин
Регистрация: 02.09.2011
Сообщений: 336
|
http://www.cplusplus.com/reference/c...stdio/sprintf/ не канает уже?
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
|
09.07.2012, 20:45 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ну начнем с того что вы указываете именно в va_arg тип аргумента.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
09.07.2012, 22:00 | #4 | |||
Пользователь
Регистрация: 09.07.2012
Сообщений: 11
|
Цитата:
Цитата:
Цитата:
или вы предлагаете создать 2 определения va_list с разными объявлениями типов ? |
|||
10.07.2012, 08:34 | #5 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
Код:
Код:
Знающий не говорит, говорящий не знает (С) Лао Цзы
|
10.07.2012, 09:44 | #6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
printf(и иже с ними) же работает. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
10.07.2012, 10:50 | #7 |
Пользователь
Регистрация: 09.07.2012
Сообщений: 11
|
Krok27, спасибо за текст, но задача в том чтобы нужно сделать свой аналог функции printf
то бишь, функция будет вызыватся так: Код:
|
10.07.2012, 12:46 | #8 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
поизвращался :D
Код:
|
10.07.2012, 12:49 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
stranger84, не забывайте что ваша функция должна как то узнать сколько у нее аргументов и их типы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
10.07.2012, 13:05 | #10 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
Или обрабатывать пока не 0.
Знающий не говорит, говорящий не знает (С) Лао Цзы
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача аргументов в функции по ссылке | skanku | Общие вопросы C/C++ | 2 | 11.01.2012 21:24 |
Передача в функцию неограниченного количества аргументов | pronaks | Общие вопросы C/C++ | 4 | 13.12.2011 22:54 |
передача разных типов данных из Exel в Access | zinch | Microsoft Office Excel | 1 | 10.11.2011 19:54 |
Передача аргументов в функцию. C++ | Kholmansky | Помощь студентам | 2 | 15.09.2011 01:02 |
Как передать в функцию параметр разных типов | borispnz | Общие вопросы Delphi | 5 | 06.02.2010 08:37 |