реклама на сайте
подробности

 
 
> Массив указателей на функции. Need help.
leo@intek
сообщение Dec 26 2006, 13:07
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 3-05-05
Из: Ufa
Пользователь №: 4 692



Добрый день!
Стоит следующая задача: есть некоторое количество функций func00, func01, ... , funcN. В зависимости от значения переменной необходимо вызвать либо func00, либо func01, и т.д. Причем городить конструкцию switch-case очень не хочется (условий получится больше 100).

Попробовал создать массив указателей на функции, следующим образом:

Код
void func00(void)
{
    printf("func00");
}

void func01(void)
{
    printf("func01");
}

void test(void)
{
    void *func();
    int ptrs[2];
    char x;

    ptrs[0] = (int)func00;
    ptrs[1] = (int)func01;

    // пытаемся присвоить func() указатель на нужную функцию
    x = 0;
    func = (void*)ptrs[x];

    // вызов функци
    func();

}


При компиляции для строчки func = (void*)ptrs[x] выдается вполне ожидаемая ошибка - Error[Pe137]: expression must be a modifiable lvalue.

Что делать? help.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01252 секунд с 7
ELECTRONIX ©2004-2016