Указатель на функцию - PullRequest
       0

Указатель на функцию

2 голосов
/ 01 марта 2011

В чем разница между int *fun(void) и int fun*(void)?

Ответы [ 3 ]

6 голосов
/ 01 марта 2011

Первый начинает определять (или объявлять, в зависимости от того, что будет дальше) функцию, которая возвращает указатель на int.Последнее является синтаксической ошибкой.Также не указатели на функции.

Указатель на функцию должен выглядеть следующим образом:

int (*fun)(void);

Здесь указывается функция, возвращающая int.

3 голосов
/ 01 марта 2011
int* fun(void);

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

int (*fun)(void)= NULL;

Теперь fun - указатель на функцию, которая не принимает аргументов, но возвращает целое число.

0 голосов
/ 27 июля 2012

int * func (void)

Как правило, действительная декларация состоит из 3 трех частей и заканчивается; точка с запятой.

часть 1) Аргумент

пустое среднее - без аргументов (аргумент может быть сложным и различаться по количеству)

часть 2) Тип возврата (может быть пользовательским или встроенным)

int * mean - (тип возвращаемого значения) - указатель на int

часть 3) Имя функции (может быть любым, должно быть логичным для операции, которую она собирается выполнить.

func mean - название функции

Во втором синтаксисе. у нас есть * между частью 2 и частью 3.

что недопустимо и значимо. Вы можете добавить * в void или int.

  • int * func (void)

  • int func (void *)

или для указателя функции в ответ.

(* pf) ();

или

(* pf) (недействительно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...