内联函数的局部static / thread_local变量?

时间:2015-08-23 22:22:59

标签: c++ c++11 c++14

如果我有一个静态局部变量或thread_local局部变量,它位于以不同翻译单位定义的内联函数中,在最终程序中它们是否由标准保证具有相同的地址?

// TU1:
inline int* f() { static int x; return &x; }
extern int* a;
void sa() { a = f(); }

// TU2:
inline int* f() { static int x; return &x; }
extern int* b;
void sb() { b = f(); }

// TU3:
int *a, *b;
void sa();
void sb();
int main() { sa(); sb(); return a == b; }

以上总是会返回1吗?

0 个答案:

没有答案