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

typedef unsigned long (__stdcall * THREADFUNC)(void *)是什么意思

慕盖茨4494581
浏览 121回答 2
2回答

SMILET

这是一个函数类型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);

波斯汪

自定义函数指针类型名为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;}
打开App,查看更多内容
随时随地看视频慕课网APP