41. 定义与调用一个函数指针时的几种方式

//定义与调用一个函数指针时的几种方式
#include <stdio.h>

void print(void)
{
    printf("hello world!\n");
}

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;
}

 

posted @ 2018-08-21 10:25  2018年8月10日注册  阅读(256)  评论(0编辑  收藏  举报