(int(*)())在函数调用中的含义

pyl*_*yle 3 c

就像标题所说,我想知道C-define-function-call中的" (int(*)()) "是什么意思?

例如,它看起来类似于:

#define Bla(x)    (Char *) read((char *(*)()) Blub, (char **) x)
Run Code Online (Sandbox Code Playgroud)

或这个

#define XXX(nx, id)     PEM_ASN1_write_bio((int (*)()) id, (char *) nx)
Run Code Online (Sandbox Code Playgroud)

先感谢您!

unw*_*ind 9

将参数转换为指向返回char *并接受零个或多个参数的函数的指针.第二个函数返回int.

您可以使用名为" cdecl " 的程序(现在称为" cdecl ")来帮助解决这些问题,它说:

  • (char *(*)()):将unknown_name转换为指向函数的指针,返回指向char的指针
  • (int (*)()):将unknown_name转换为指向函数返回int的指针