2 回答

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

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;
}
添加回答
舉報