int foo(char *c) {...}
main() {
int (*thud)(void *);
thud = (int (*)(void *))(foo);
}
在评估作业期间实际发生了什么?
foo转换类型和;之间有区别 强制转换类型是一个指针并且foo是一个函数。那么,编译器是否将 ' (foo)' 中的内容转换为指向的指针,foo然后才进行强制转换?因为似乎没有其他任何意义;另一种选择是将函数本身转换为指向获取 avoid*并返回inta 的函数的指针,据我所知,函数是内存中一段代码的标签,因此不能成为指针,即一个变量。