将inline static变量的定义放在头文件中,并将其标记为inline,这样每个翻译单元都将使用相同的副本。
示例代码:
// my_header.h inline static int my_variable = 0;
// file1.cpp #include "my_header.h" void foo() { my_variable++; }
// file2.cpp #include "my_header.h" void bar() { my_variable++; }
// main.cpp #include "my_header.h" int main() { foo(); bar(); return my_variable; // 返回值为2,因为每个翻译单元都使用相同的副本 }