void printFunc( void(*)(int&,int&), int& );
Я не знаю, что делает этот код. Я знаю, что это прототип функции с двумя параметрами, но я не знаю, что означает первый параметр.
Первый тип параметра — это указатель на функцию, которая принимает два аргумента, оба int&
с и возвращает void
,
void foo(int&, int&);
Если у вас есть это объявление функции, вы можете передать foo
в качестве аргумента printFunc
,
Это указатель на функцию, которая занимает два int&
параметры и возврат void
,
Если бы был идентификатор для него (скажем, p
), это будет записано так:
void (*p)(int&, int&)
Затем мы можем применить принцип «если мы введем объявление как выражение, мы получим его тип». Так:
(*p)
средства p
это указатель
(*p)(int&, int&)
средства (*p)
это функция, принимающая два int&
параметры
void (*p)(int&, int&)
означает, что это возвращает void
,