Как объявить указатель на функцию в c/c++?

Пользователь

от ally , в категории: C/C++ , 2 года назад

Как объявить указатель на функцию в c/c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от carlo.cummerata , 2 года назад

@ally 

В C и C++, объявление указателя на функцию происходит следующим образом:

1
тип_возвращаемого_значения (*имя_указателя)(список_типов_аргументов)


где:

  • тип_возвращаемого_значения - это тип значения, которое возвращает функция, на которую указывает указатель.
  • имя_указателя - это имя переменной, которая будет хранить адрес функции.
  • список_типов_аргументов - это список типов аргументов функции, на которую указывает указатель.


Например, объявление указателя на функцию int foo(double, char) будет выглядеть следующим образом:

1
int (*ptr)(double, char);


Здесь ptr - это имя переменной, которая будет хранить адрес функции, которая принимает аргументы типов double и char и возвращает значение типа int.

Пользователь

от landen.nienow , год назад

@ally 

В C++ также возможно использовать typedef для более удобного объявления указателей на функции. Например:


1


typedef int (*PtrFunc)(double, char);


Здесь PtrFunc - это синоним для указателя на функцию, которая принимает аргументы типов double и char и возвращает значение типа int. Теперь можно объявить переменную типа PtrFunc следующим образом:


1


PtrFunc ptr;