memcpy() 中的用typedef定义的指针还是要使用&取地址?
七月的狮子 2014-02-07 06:59:43 class Addtest
{
typedef void (Addtest:: *funThreadFunc)(); //后面的我只可以看成是对类的声明 , 类方法指针,类其中的一个方法
typedef void (*PFunThread)(LPVOID); //声明线程的指针
private:
HANDLE hThread;
DWORD ThreadID;
public:
Addtest()
{
funThreadFunc ThreadFunc=&Addtest::Execture; //在目前需要带上& 和类的名称
PFunThread PThread=NULL;
memcpy(&PThread,&ThreadFunc,sizeof(ThreadFunc)); //结果是无法识别最终的类型,所以需要加上&,还是因为指针是变量的关系
hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)PThread,(void *)this,0,&ThreadID);
}
void Execture()
{
for(int i=0;i<1000;i++)
{
cout<<"德莱文"<<endl;
Sleep(100);
}
}
void terminated()
{
TerminateThread(hThread,ThreadID);
cout<<"线程已经释放"<<endl;
}
};
问题 在memcpy()中PThread,ThreadFunc 是指针类型,为什么还要使用&取地址?