int(* func)()在C中做什么?

Siv*_*der 5 c

这行代码在C中做什么?

 int (*func)();
Run Code Online (Sandbox Code Playgroud)

我从以下应该执行字节代码的程序中提取了该文件(汇编指令转换为相应的字节)

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

mas*_*tov 5

问题所在的行为具有未指定参数(自C99开始为“过时”功能)且具有返回类型的函数声明了函数指针int

您的第一行main声明了该指针,第二行初始化了该指针,因此它指向该函数code。第三行执行它。

您可以在此处总体上获得指向函数的指针的描述。