为了账号安全,请及时绑定邮箱和手机立即绑定

如下情况,希望给我解答详细点,谢谢

如下情况,希望给我解答详细点,谢谢

慕盖茨4494581 2022-07-14 12:11:55
typedef unsigned long (__stdcall * THREADFUNC)(void *)是什么意思
查看完整描述

2 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

这是一个函数类型THREADFUNC定义, __stdcall是函数的调用方式,函数的参数为void*类型的变量,函数返回值为unsigned long.
用法
加入有个函数定义为
unsigned long __stdcall calcLen(void * pointer)
{
unsigned long i = 0;
while (*(pointer+i++)!= 0);
return i;
}

THREADFUNC getlen = calcLen;

char * str = "hello Zhu meimei!";
unsigned long str_len = (*getlen)(str);

查看完整回答
反对 回复 2022-07-18
?
波斯汪

TA贡献1811条经验 获得超4个赞

自定义函数指针类型名为THREADFUNC,可指向如下函数

返回值为unsigned long,参数类型为void*,调用约定为__stdcall

举个使用的例子

typedef unsigned long (__stdcall * THREADFUNC)(void *);
unsigned long __stdcall myfunc(void *param)
{
*((int*)param)=1234;
return 0;
}

int main()
{
THREADFUNC pf1 = &myfunc;
void *param = malloc(sizeof(int));

(*pf1)(param);/* 相当于myfunc(param); */

return 0;
}


查看完整回答
反对 回复 2022-07-18
  • 2 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号