![]() |
|
Модераторы: bsa |
![]()
|
|
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 3 Всего: 23 |
Тогда надо еще передать порядок чтения этих элементов, и кроме того эти две части не должны друг про друга много знать.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 3 Всего: 23 |
Добавлено @ 21:38
Сортировка тут не причем, так как порядок может быть не поддающийся алгоритму сортировки. Если бы даже можно было нарушать порядок, сортировка заняла бы тоже много времени. Добавлено @ 21:44 Задача такая. Есть несколько предикатов, имеющих свою структуру (последовательность лексем или действий) и внутренние переменные. Нужно вызвать из одного предиката другой, передав ему в качестве параметров некоторые свои внутренние переменные. Это сообщение отредактировал(а) ИванМ - 3.6.2011, 21:48 |
|||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
ИванМ, но если функция не знает какие именно параметры она принимает, как она с ними будет работать? я понимаю какой-нибудь sprintf(), а как эта будет работать?
|
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 3 Всего: 23 |
asmdzen, функция знает: у нее первый параметр - число параметров. Не знает компилятор.
|
|||
|
||||
| asmdzen |
|
||||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
так это получается что-то подобное:
только с неопределенным количеством параметров разных типов, откуда функция узнает какой у параметра тип и что с этим параметром делать. я чет не догоняю. чем va_list не устраивает? Это сообщение отредактировал(а) asmdzen - 3.6.2011, 22:59 |
||||
|
|||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 3 Всего: 23 |
||||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
теперь понял )
не будет ли удобней написать enum со всеми возможными типами и потом уже делать cast? |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 3 Всего: 23 |
||||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
я так понимаю это все же конечное количество параметров, просто неизвестно придут они все или только часть (если не так то все еще непонятно как функция разберет что и с каким параметром делать). Вас просто не устраивают дефолтные параметры из-за жора ресурсов? Это сообщение отредактировал(а) asmdzen - 3.6.2011, 23:35 |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 3 Всего: 23 |
asmdzen, нет, смысл в том, что я не знаю сколько параметров нужно передать. Знает только интерпретатор. Он и будет передавать.
Когда интерпретатор будет передавать параметры, он уже будет знать сколько их и поэтому первым параметром передаст число этих параметров. Т.е. функция, когда ее вызовут, будет знать, сколько их пришло. Но кроме функции и интерпретатора больше никто не знает. |
|||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
ИванМ, это я понял, я не догоняю что функция с ними делать будет, не встречал еще такое. Ну есть у меня функция с переменным числом параметров, но нет никакого формата как в printf, есть только типы переменных и их значения, что мне с этими параметрами делать? если бы это была очередь и заранее неизвестно есть там все параметры или нет, то я понимаю, но если неизвестно ни количество параметров ни их порядок?
|
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 1 Всего: 14 |
передавай указатель на структуру заполненую параметрами, где первым к примеру идет кол-во параметров.
-------------------- |
|||
|
||||
| ИванМ |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 3 Всего: 23 |
Почему неизвестно все параметры или нет. Как раз известно. Число параметров передается первым параметром. Сколько сказано, столько и будет. Порядок тоже известен: от первого к последнему.
Мне нужна именно запись вида: funt(count, тип, значение, ...) Это во первых, а вторых любая структура имеет определенный размер, задаваемый при компиляции. А у меня переменный размер. |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |