Я видел this, но он никогда не указывал, как объявить указатель функции, который возвращает указатель на функцию (он просто определил, как создать функцию, возвращающую указатель на функцию).Как вы пишете указатель на функцию, который возвращает указатель на функцию без использования typedefs?
Хотя было бы разумнее использовать typedefs, я заинтересован в синтаксисе, чтобы выполнить это без typedefs.
Это ближайший я получил:
struct function_hash_table {
unsigned int(*(*getFunction)(Type, Type, Type))(char *name);
}
(Какой на самом деле весьма не имеет отношения к этому вопросу).
Но, когда я пытаюсь назвать это так:
hash_table.getFunction("Test");
я получаю ошибки слишком несколько параметров и неправильных типов параметров.
уточнить:
unsigned int(*hash_get_function(Type, Type, Type))(char *name)
работает хорошо для реальных функций и объяснено в ссылке. Однако, как я могу объявить указатель функции, который ссылается на такое определение?
«никогда не указано, как объявить указатель на функцию, которая возвращает функцию (она просто определяется как создать функцию, возвращающую указатель на функцию)» - в C, Функциональные указатели не являются первоклассными. Вы не можете вернуть функцию. Вы можете вернуть указатель на функцию. –
Моя формулировка, по-видимому, вводит в заблуждение. Я понимаю, что вы только что сказали, но об этом я не спрашивал. Если бы мне не пришлось помещать getFunction внутри структуры, я бы мог написать ее правильно. Вопрос заключается в том, как определить указатель на функцию, который эквивалентен функции, которая не находится внутри структуры. – Isaiah
Не имеет значения, является ли ваш указатель членом структуры или «автономной» переменной. Декларация одинаков. –