//定义与调用一个函数指针时的几种方式 #include <stdio.h> void print(void) { printf("hello world! "); } int main(void) { #if 0 //正确。推荐这样用 void(*p)(void) = print; p(); #endif #if 0 //取不取&都一样,跟数组类似,不推荐这样用 void(*p)(void) = &print; p(); #endif #if 0 //取不取*都一样,不推荐这样用 void(*p)(void) = &print; (*p)(); #endif #if 1 //错误 void(*p)(void) = &print; *p();//直接报错,优先级问题导致错误解析 #endif return 0; }