vs2015里
void func()
{
printf("hello world\n");
}
// 1
typedef void(*FUNC_TYPE)();
FUNC_TYPE p = &func;
(*p)();
//2
typedef void(*FUNC_TYPE)();
FUNC_TYPE p = func;
(*p)();
// 3
typedef void(*FUNC_TYPE)();
FUNC_TYPE p = &func;
p();
//4
typedef void(*FUNC_TYPE)();
FUNC_TYPE p = func;
p();
// 5
typedef void(FUNC_TYPE)();
FUNC_TYPE p = &func;
(*p)();
//6
typedef void(FUNC_TYPE)();
FUNC_TYPE p = func;
(*p)();
// 7
typedef void(FUNC_TYPE)();
FUNC_TYPE p = &func;
p();
//8
typedef void(FUNC_TYPE)();
FUNC_TYPE p = func;
p();
这几个形式都是对的,理解为编译器的优化。。。。
函数指针存在的意义我觉得是为了降低函数之间的耦合,增加函数的内聚