Прежде всего, нужно действительно скрывать такие вещи всегда исходит из грязного программного обеспечения. Вы пытаетесь решить проблему X, и вы думаете, что метод Y это сделает. Поэтому вы спрашиваете нас, как заставить Y работать, хотя это, скорее всего, не правильное решение для начала. Корень проблемы может заключаться в том, что X неправильно спроектирован.
Это, как говорится, вы можете сделать это, используя в качестве оболочки-структуру, и, таким образом, пользуясь неполными типов структуры:
typedef struct func_wrapper_t
{
struct func_wrapper_t (*func) (int);
} func_t;
...
func_t some_function (int x)
{
...
return (func_t){ some_function };
}
...
int main(void)
{
func_t f = some_function(0);
return 0;
}
Я предполагаю, что вы не отметили комментарий. Считаете ли вы, что он был автоматически удален, потому что в нем содержалось слово 'Upvoted'? Странный. Во всяком случае, это намного лучше, потому что вам не нужно бросать и не ошибиться. – 2501
@ 2501 Не совсем уверен, о чем вы говорите. Я не заметил никаких комментариев. – Lundin
Положительный комментарий удален. – 2501