указатель на функцию по имеми foo, которая принимает указатель на функцию, которая принимает число и массив; который возвращает указатель на функцию, которая принимает переменное кол-во параметров?
Здравствуйте, Alex20001, Вы писали:
>Нужно сказать тип foo.
указатель на функцию, который принимает указатель на функцию, которая принемает double, double[]; и double, и возвращает указатель на функцию, которая принимает переменное кол-во double
Здравствуйте, Alex20001, Вы писали:
A>Привет всем! A>Никто не знает случайно, что за декларация на С:
A>
A>double(*foo(double(*)(double, double[]), double))(double, ...);
A>
A>Нужно сказать тип foo.
Если хочешь, чтоб коллеги поломали голову (или что там у них), то убирай из декларации идентификатор и проси назвать тип — так труднее — позицию, от которой следует начинать разбор типа еще найти нужно. Для сравнения:
Здравствуйте, о_О, Вы писали:
о_О>Здравствуйте, Alex20001, Вы писали:
>>Нужно сказать тип foo. о_О>указатель на функцию, который принимает указатель на функцию, которая принемает double, double[]; и double, и возвращает указатель на функцию, которая принимает переменное кол-во double
Что-то много раз слово указатель встречается! Не? В объявлении то только 2 указателя. Можете пояснить откуда взялось
"и возвращает указатель на функцию, которая принимает переменное кол-во double"
Здравствуйте, Alex20001, Вы писали:
A>double(*foo(double(*)(double, double[]), double))(double, ...);
Это код очень неуверенного в себе человека, который хотя и хочет шесть раз удвоить foo (итого получается 64 foo), но повсеместно ставит то сноски*⁾, то ссылки на литературу[1], то многоточия.
*⁾ Причем с совершенно непоследовательным использованием скобок.
Здравствуйте, SullenMan, Вы писали:
SM>Здравствуйте, о_О, Вы писали:
о_О>>Здравствуйте, Alex20001, Вы писали:
>>>Нужно сказать тип foo. о_О>>указатель на функцию, который принимает указатель на функцию, которая принемает double, double[]; и double, и возвращает указатель на функцию, которая принимает переменное кол-во double
SM>Что-то много раз слово указатель встречается! Не? В объявлении то только 2 указателя. Можете пояснить откуда взялось
SM>"и возвращает указатель на функцию, которая принимает переменное кол-во double"
не. функция может принимать тип функции и указатель на функцию в качестве параметра. если аргумент является типом функции:
typedef int tratata(int*);
int pumpurum(tratata t)
{
return t(); //ok
}
то, он автоматически преобразуется в указатель на функцию. если возвращаемый тип — это тип функции, то происходит ошибка времени компиляции.
в данном случае функция явно возвращает указатель на функцию, что видно из примера
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Alex20001, Вы писали:
A>>Никто не знает случайно, что за декларация на С: К>Это — декларация из чьей-то контрольной работы
К>тайпдефы нас спасут К>
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Здравствуйте, о_О, Вы писали:
о_О>>указатель на функцию по имеми foo,
L_L>это объявление функции foo, а не указателя на функцию.