在阅读下面链接的Niklas Frykholm撰写的非常好的博客文章时,我遇到了一些我无法解决的问题。
http://bitsquid.blogspot.nl/2012/01/sensible-error-handling-part-1.html
这段代码让我困惑:
__THREAD Array<const char *> *_error_context_name;
__THREAD Array<const char *> *_error_context_data;
代码定义了一个线程数组的线程本地指针,用作简单堆栈。我不太明白的是如何以跨平台的方式初始化和销毁阵列?这又如何与dll边界一起工作?
答案 0 :(得分:1)
线程本地仅注释变量在程序中解析的位置。您需要在使用之前分配它,就像任何其他变量一样。
为了理智和性能,你最好在线程开始时这样做。