我正在尝试使用 __thread 说明符来创建线程局部变量。这在以下代码中可以正常工作:
#include <stdio.h>
#include <pthread.h>
static __thread int val;
int main()
{
val = 10;
}
但是,如果我尝试在类中使用 __thread 说明符,如下所示:
#include <stdio.h>
#include <pthread.h>
class A
{
public:
A();
static __thread int val;
};
A::A()
{
val = 10;
}
int main()
{
A a;
}
我得到编译器错误:未定义的对 'A::val' 的引用