特别是,以下内容是否会如预期般正常运行:
typedef void(*func_p)(void*);
void foo(int* data)
{
printf("%i\n",*data);
}
int main(int argc, char** argv)
{
func_p bar;
int x = 42;
bar = foo;
bar((void*)&x);
return 0;
}
我可以依赖数据指针 (void*
, int*
, struct baz*
, 但不一定是 void(*)(void)
) 总是兼容传递吗?