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();
这几个形式都是对的,理解为编译器的优化。。。。
函数指针存在的意义我觉得是为了降低函数之间的耦合,增加函数的内聚
本文探讨了在VS2015中,函数指针的不同形式及其被编译器优化的情况。强调了函数指针的主要作用在于降低函数间的耦合度,提高函数的内聚性。
1万+

被折叠的 条评论
为什么被折叠?



