Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Функции с переменным числом параметров  (Прочитано 8990 раз)
0 Пользователей и 1 Гость смотрят эту тему.
LightSin
The question title sounds to me the same as "Convert banana into a pistol"... :-)
Постоялец

ru
Offline Offline
id/fm105


« : 03-11-2011 19:41 » 

Хотел написать функцию похожую на printf , sprintf...
нашел вот, такой материал  http://www.rsdn.ru/forum/cpp/418970.1.aspx ,но не понял как они определяют переданный тип.
Код:
f(char *s1, ...) 
явно передается указатель на 1 элемент,  дальше  якобы это как массив указателей   
Код:
char **cp = &s1; 
и перебираем этот массив на след элемент  cp++;

Возник вопрос. как узнать тип этого элемента? char, int ...? почему то мысль была про шаблоны Здесь была моя ладья... или все упирается в %d %s но хм?



да бы не создавать новых тем, помогите разобраться с кашкой в голове)
программирование под Linux? как понял там gui и qt? gui это как win32 api? а qt как mfc??( эт жестк мысль фремворк...))

Си++  Работа с базами данных, как понял нужно уметь использовать OLE db но есть облегченное современное через ado.net. правильно?
то есть лучше программировать учить ado>? или в сетки можно разобраться в ole db?? по функциональности ведь получается ole db больше(com интерфейсы хм)?....(в данной области еще не работал вот разбираюсь..)
Linux и ole db..? или все же адо или существует решение интересней?

Linux что не будь для работы с сетью... boost?  qt?

продолжение следует Краснею 

Записан

Lost in the jungle: 1c, PIC AVR, C++, Python flask, (no Java) JS . for fun: Live For Speed S2 Drift Edition, TeeWorlds
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 03-11-2011 20:35 » 

LightSin, Как все запушено. GUI - Graphical user interface. Т.е просто графическая оболочка.
Qt это намного больше чем MFC. Его можно сравнить с .NET по объему.  Кстати и для Windows его тоже можно применять. Поскольку эта библиотека кроссплатформенная.
С базой данных можно работать напрямую, Например MySQL предоставляет свой API для работы. Также и через стороние библиотеки. Например в Qt есть классы для работы с базами данных. 
С сетью также. Можно работать и напрямую. Также и через стороние библиотеки.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 03-11-2011 20:53 » 

не понял как они определяют переданный тип.

Косвенно, через строку формата.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
LightSin
The question title sounds to me the same as "Convert banana into a pistol"... :-)
Постоялец

ru
Offline Offline
id/fm105


« Ответ #3 : 03-11-2011 21:15 » 

Цитата: RLX
Косвенно, через строку формата.
косвенно передаются, последующие элементы после 1 ,который передается явно, но в printf они разно типа()
  Флаг тебе в руки! переданный тип как определить. как printf эт ест, что б потом в чар строку " %s %d", char , int, double....




odbc-> oli db -> active -> ado ?как-то так?  вродеб стандарт  com? и qt использует эти com интерфейсы-стандарты для работы с бд? ну и разработчики бд должны делать свои com к их базам данных... хех   Здесь была моя ладья...


Цитата: Finch
Как все запушено.
тык) разбираемся...  
« Последнее редактирование: 03-11-2011 21:23 от LightSin » Записан

Lost in the jungle: 1c, PIC AVR, C++, Python flask, (no Java) JS . for fun: Live For Speed S2 Drift Edition, TeeWorlds
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #4 : 03-11-2011 21:39 » 

LightSin, открою тебе маленкий секрет Улыбаюсь COM объекты это изобретение Microsoft. В *nix системах их нету. Базы данных работают через сеть, или через каналы (pipe).
« Последнее редактирование: 03-11-2011 21:41 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
LightSin
The question title sounds to me the same as "Convert banana into a pistol"... :-)
Постоялец

ru
Offline Offline
id/fm105


« Ответ #5 : 03-11-2011 22:01 » 

Цитата: Finch
маленкий секрет  Улыбаюсь Com.... работают через сеть, или через каналы (pipe).
точн, не могу найти где читал про эт..

"Направления и технологии" ->".NET или Кому это надо?" https://club.shelek.ru/viewart.php?id=151
жалко, не нашел чтонть такое под другим областям... новичкам эт облегчает жизнь эх))
« Последнее редактирование: 03-11-2011 22:20 от LightSin » Записан

Lost in the jungle: 1c, PIC AVR, C++, Python flask, (no Java) JS . for fun: Live For Speed S2 Drift Edition, TeeWorlds
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 03-11-2011 22:26 » 

LightSin, зачем ты лезешь в дебри, если не знаешь основ? Или потроллить захотелось?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
LightSin
The question title sounds to me the same as "Convert banana into a pistol"... :-)
Постоялец

ru
Offline Offline
id/fm105


« Ответ #7 : 03-11-2011 22:51 » 

Цитата: RXL
зачем ты лезешь в дебри, если не знаешь основ?
дык разбираюсь, тема развилась ,не так как предполагал.  как узнать тип этого элемента внутри функции передаваемого косвенно? char, int ...?
Цитата: RXL
Косвенно, через строку формата.
мм сорь тупанул, через строку формата...  предполагал так, делать.. но не проверил одно сомнение   printf("%s %s","abs",205); чтоб убедится, debug  отправляет в output.c а там уж обработка...  знач ни как не определить только косвенно...либ какимнть левым методом дать знать указателям о типе.. хех хм структурой+один паремтр тип...можт шаблоны подключить...уф Краснею. велосипед...
Цитата: RXL
Троллинг — способ ловли с применением моторизованного плавсредства. Суть троллинга заключается в осуществлении проводки приманки путем ее буксирования с помощью плавсредств, а также в возможности применять одновременно несколько приманок и снастей.

Для троллинга используют снасти, рассчитанные на высокие нагрузки, так как приманкой чаще становится воблер, а у этого вида приманок высокая степень лобового сопротивления. При выборе снасти учитываются суммарные нагрузки — скорость плавсредства и усилие хищника, атакующего приманку, а также возможные зацепы приманки при проводке.  
http://lurkmore.ru/%D0%A2%D1%80%D0%BE%D0%BB%D0%BB%D0%B8%D0%BD%D0%B3
эх)) если что в хорошем смысле этого слова)) (не Бредогенератор. & Резкая смена поведения.)занимаюсь .. эт когда про "способ ловли с применением моторизованного плавсредства. С криком о поиске подходящих снастей на высокие нагрузки на воблер"


в общем... путешествие по дебрям пришлось заняться.. с целью узнать с чем работать, с базами данных и тд...
терь другое представление о qt и framework...

Про основы хм... есть пробелы...    <Lost in the software jungle> как-то так.

« Последнее редактирование: 04-11-2011 01:16 от LightSin » Записан

Lost in the jungle: 1c, PIC AVR, C++, Python flask, (no Java) JS . for fun: Live For Speed S2 Drift Edition, TeeWorlds
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 04-11-2011 08:51 » 

Средствами ООП определение типов объектов без строки формата возможно. Но если пользоваться ООП, функции с переменным числом параметров становятся неудобным, негибким решением - выгоднее использовать нечто вроде перегруженного оператора << при работе с потоками в C++.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines