如下代码是否可以编译通过,C编译器和C++编译器,分别编译。如果能,是什么原因呢?
[code=C/C++][/code]
#include <stdio.h>
#include <stdlib.h>
#define void (*fun)(int a ,int b);
void MainShow(int a,int b)
{
printf("a+b=%d\n",a+b);
return ;
}
int main()
{
fun = MainShow;
fun(4,2);
printf("hello word! \n");
system("pause");
return 0;
}
[解决办法]
void (*fun)(int a,int b); 一个名为fun的函数指针变量。
typedef void (*FUN)(int a,int b);一个名为FUN的函数指针类型。
两个随你用哪个。但别用#define