Использование массива указателей на функции - C (СИ)
Формулировка задачи:
Подскажите, пожалуйста, что я делаю не так. Это компилируется, но не выводит функцию func1.
Листинг программы
- void func1(void);
- void func2(void);
- void func3(void);
- void func4(void);
- int main(void) {
- void (*funcArr[5])(void);
- funcArr[0] = func1;
- funcArr[1] = func2;
- funcArr[2] = func3;
- funcArr[3] = func4;
- (*funcArr[0])();
- return 0;
- }
- void func1()
- {
- printf("1");
- }
- void func2()
- {
- printf("2");
- }
- void func3()
- {
- printf("3");
- }
- void func4()
- {
- printf("4");
- }
Решение задачи: «Использование массива указателей на функции»
textual
Листинг программы
- #include <stdio.h>
- void func1(void) {
- printf("1\n");
- }
- void func2(void) {
- printf("2\n");
- }
- void func3(void) {
- printf("3\n");
- }
- typedef void (*func_t)(void);
- int main(void) {
- func_t funcs[] = { func1, func2, func3, NULL };
- int i;
- for ( i = 0; funcs[i]; ++i )
- funcs[i]();
- return 0;
- }
Объяснение кода листинга программы
- Подключение стандартной библиотеки.
- Объявление трех функций: func1, func2, func3.
- Объявление типа данных func_t, который является указателем на функцию.
- Инициализация массива funcs массивом из трех функций и завершающим NULL.
- Объявление переменной i для использования в цикле.
- Запуск цикла по массиву funcs, пока не встретится NULL.
- Вызов функции по адресу, содержащемуся в массиве funcs, с передачей пустого списка аргументов ().
- Возврат значения 0 из функции main, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д