Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
2 / 2 / 2
Регистрация: 16.10.2011
Сообщений: 179
1

Указатель на функцию в качестве параметра функции

18.04.2014, 15:51. Показов 960. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Стоит задача - имеется функция, которая принимает 2 аргумента: 1 - указатель на функцию, 2 - параметр int

C
1
2
3
4
5
6
7
8
9
10
11
void testfoo(void (*)(void), int PARAM);
 
void foo1(void)
{
printf("First func \n");
}
 
void foo2(void)
{
printf("Second func \n");
}
Если PARAM==0, то вызываем foo1, если нет, то foo2. Как это осуществить? Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2014, 15:51
Ответы с готовыми решениями:

Указатель на функцию в качестве параметра функции
ln(1-x)+sinx необходимо создать программу демонстрирующую возможность использования указателя на...

Указатель на функцию, которая принимает в качестве параметра указатель на массив
я не понимаю. вроде делаю правильно, но выходит ошибка. есть функция. int foo(int *mas){};...

Указатель на файловый поток в качестве параметра функции
Здравствуйте! Хочется/нужно написать что-то вроде функции которая читала бы из файлового потока...

Передача функции в качестве параметра в другую функцию
Задание стоит следующее: Написать программу, содержащую две функции. Первая функция, вычисляющая...

2
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
18.04.2014, 16:02 2
Цитата Сообщение от mappy89 Посмотреть сообщение
Как это осуществить?
Никак. Или ты неправильно понял/переписал задание.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
 
void
testfoo(void (*f)(void), int param)
{
    printf("%d", param);
    f();
}
 
void
foo1(void)
{
    printf("First func\n");
}
 
void
foo2(void)
{
    printf("Second func\n");
}
 
int
main(void)
{
    int i;
    for (i = 0; i < 2; i++)
        if (i == 0)
            testfoo(foo1, i);
        else
            testfoo(foo2, i);
    return 0;
}
0
430 / 384 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
18.04.2014, 17:05 3
Действительно, сформулировано как-то странновато. Видимо, подразумевалось что-то вроде этого:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
 
void function1(void)
{
    puts("First function");
}
 
void function2(void)
{
    puts("Second function");
}
 
typedef void (*pfunction_t)(void);
 
pfunction_t pfunctions[2] = { &function1, &function2 };
 
void test_pfunctions(pfunction_t functions[], int function_index)
{
    (*functions[function_index])();
}
 
int main(void)
{
    test_pfunctions(pfunctions, 0);
    test_pfunctions(pfunctions, 1);
 
    return 0;
}
0
18.04.2014, 17:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2014, 17:05
Помогаю со студенческими работами здесь

Можно ли в качестве параметра функции передать другую функцию?
В ниже представленной программе функция returnMax находит в массиве максимальный элемент и...

Как передать функции указатель на функцию в качестве аргумента?
как передать функции указатель на функцию в качестве аргумента?

Сохранение изменений, произведённых в функции с переменной, переданной в эту функцию в качестве параметра.
Всем привет. Собственно, как это можно сделать? :) Пробовал переменную делать и локальной, и...

как передать функции в качестве аргумента указатель на функцию описанной в другом классе?
Есть два класса A и B в классе A есть две функции funcA_1 и funcA_2 в классе B - funcB в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru