Введение
Указатель на функцию - это способ хранения адреса памяти функции, точно так же, как переменная хранит адрес памяти значения. Когда функция вызывается через указатель, это называется вызовом функции по указателю.
В этом практическом занятии мы напишем программу на C, чтобы показать, как использовать указатель на функцию.
Объявить и определить функцию, на которую будет ссылаться указатель
В этом шаге мы объявим и определим функцию, которая принимает два целочисленных аргумента и ничего не возвращает.
#include<stdio.h>
void func(int a, int b)
{
printf("\n\n a = %d \n", a);
printf("\n\n b = %d \n", b);
}
Объявить указатель на функцию
В этом шаге мы объявим указатель на функцию, созданную на шаге 1. Синтаксис объявления указателя на функцию похож на объявление указателя на переменную, но он указывает типы параметров и тип возвращаемого значения функции, на которую ссылается указатель.
// function pointer
void (*fptr)(int, int);
Сохранить адрес функции в указателе
В этом шаге мы сохраним адрес функции, созданной на шаге 1, в указатель, созданный на шаге 2.
// assign address to function pointer
fptr = func;
Вызвать функцию с использованием указателя
В этом шаге мы вызовем функцию, созданную на шаге 1, с использованием указателя на функцию, созданного на шаге 2.
// function calling
func(2,3);
fptr(2,3); // calling a function referring to pointer to a function
Напишите полный код
Откройте файл main.c в директории ~/project/.
#include<stdio.h>
void func(int a, int b)
{
printf("\n\n a = %d \n", a);
printf("\n\n b = %d \n", b);
}
int main()
{
printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
// function pointer
void (*fptr)(int, int);
// assign address to function pointer
fptr = func;
// function calling
func(2,3);
fptr(2,3); // calling a function referring to pointer to a function
printf("\n\n\t\t\tCoding is Fun!\n\n\n");
return 0;
}
Компилируйте и запустите код
Для компиляции кода откройте терминал и введите следующую команду:
gcc main.c -o main
Для запуска программы введите следующую команду:
./main
Резюме
В этом практическом занятии мы узнали, как использовать указатель на функцию в программе на C. Мы увидели, как объявлять и определять функцию, на которую будет ссылаться указатель, как объявлять указатель на функцию, как сохранять адрес функции в указателе и как вызывать функцию с использованием указателя. Использование указателей на функции может упростить написание и понимание сложных программ.



