¿Qué hace int (* func) () en C?

¿Qué hace esta línea en C?

int (*func)(); 

Lo extraje del siguiente progtwig que se supone que debe ejecutar el código de bytes (instrucciones de ensamblaje convertidas a sus bytes correspondientes)

 char code[] = "bytecode will go here!"; int main(int argc, char **argv) { int (*func)(); func = (int (*)()) code; (int)(*func)(); } 

La línea en cuestión declara un puntero de función para una función con argumentos no especificados (una característica “obsoleta” desde C99) y con el tipo de retorno int .

La primera línea de su main declara ese puntero, la segunda línea inicializa el puntero para que apunte al code función. La tercera línea lo ejecuta.

Puede obtener una descripción de los punteros a las funciones en general aquí .

int (*func)(); declara func como un puntero a una función que devuelve un tipo int y espera cualquier número de argumentos .