【发布时间】:2013-12-07 04:52:21
【问题描述】:
我目前有一个包含一些全局变量的库。我想让这些变量线程本地化,所以我在它们前面添加了“__thread”说明符。它完成了这项工作,但编译器对这些变量给出了“定义但未使用”的警告。我用“-Wno-unused-variable”隐藏了警告,但我想知道为什么会发生这种情况,因为这些变量实际上是在库中使用的。
谢谢!
【问题讨论】:
-
它们是静态的还是外部的?
-
@R.. 它们是静态的。而且我认为它们正在被库函数使用,并且在添加“__thread”说明符后它们的行为确实符合预期。看到这些警告很烦人,我想知道我是否做错了什么。
-
如果它们是静态的,那么唯一可能使用它们的地方就是它们定义在同一个
.c文件中。我怀疑你的库函数使用的是 不同的 恰好同名的全局变量...
标签: c multithreading gcc compiler-construction thread-safety