首页 > 其他 > 详细

分析一下函数指针的使用

时间:2021-02-23 16:32:54      阅读:21      评论:0      收藏:0      [点我收藏+]

线程池代码中存在一段结构体初始化的设计:

/*
    all tasks in the linked list 
    recalled function for task
*/
typedef struct worker
{
    void *(*process) (void *arg); /*recalled function*/
    void *arg;
    struct worker *next;
} CThread_worker;

 

看最基本的定义:

int func(int x);   /*声明一个函数*/
int (*p) (int x);  /*定义一个函数指针*/
p = func;          /*将Func函数的首地址赋给指针变量p*/

声明一个函数最为简单,定义一个函数指针则 int (*p) (int x)

*p 代替func, 大体样式一样,int ()()

p 指向 func,函数指针样式。

 void *(*process) (void *arg)

void *arg 作为一个无类型指针参数

void *(*p) 无类型指针的函数,此时需要说明函数指针和指针函数的区别:

指针函数: int *sum(int a, int b), 是一个函数,返回值是一个指针。(简单记忆-返回指针)

函数指针: int sum(int a, int b), int (*p)(int, int) p = sum, p指向函数,sum返回值是一个int类型。(简单记忆-返回函数值)

void *(*process) (void *arg)该为函数指针形式(有一种面向对象思想)

分析一下函数指针的使用

原文:https://www.cnblogs.com/real-watson/p/14435781.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!