我在学习正点原子的代码时,看到这样一个写法,可以调用任意一个函数
#include <stdio.h>
void Test1(void)
{
printf("123");
}
void Test2(int a)
{
printf("%d \n", a);
}
int main()
{
( *( void(*)() ) Test2 ) (123);
return 0;
}
运行结果 可以输出123, 就算不填,也不会报错或则警告,也能输出一个52.
main中 ( void()() ) 来修饰Test2,不懂这是什么意思,为什么void(*)后要加一个(),不写还会报错