线程函数要不定义成全局函数,要不就要定义成静态函数,是否因为它是不依靠对象来调用的的,所以要定义成静态函数?我对静态函数的列界不是很深
好像还有一种作用就是静态函数只能被所在文件调用,不能被工程中其他的文件调用.
请各位知道的进来一起讲讲吧~~~~!

解决方案 »

  1.   

    线程函数用__stdcall调用约定,用静态主要是当它是对象成员时不会出现thiscall。
      

  2.   

    static keyword is tell the compiler, is inside a class , do not use
    the this pointer(which is pass by ecx inside CPU).
      

  3.   

    no,之所以线程函数要定义为全局或者静态函数,完全是因为微软已经设定了固定的函数格式,也就是 unsigned __stdcall ThreadFunc(void *param); 
    你应该知道任何c++成员函数都会有一个this指针作为隐藏参数,因此你根本没有办法声明一个符合规矩的c++成员函数作为线程函数。所以必须作为外部或者静态函数存在。