在C/C++中传递两个文件之间的静态变量

sky*_*oor 4 c c++ static

我有一个问题要问两个文件之间传递静态变量.

现在我有一个文件Ac和第二个文件B.cpp

在Ac

static struct {
   int 
   int 
} static_variable
Run Code Online (Sandbox Code Playgroud)

现在Ac必须func()在B.cpp中调用一个函数,这个函数必须修改Ac中的static_variable

在B.cpp

func() {

  static_variable = ***;

}
Run Code Online (Sandbox Code Playgroud)

我知道B.cpp无法访问Ac中的静态变量,所以如果我真的需要这样做,我该怎么办?

CB *_*ley 11

整个要点static是给对象或函数内部链接,这样你就不能从翻译单元外部引用它.如果这不是您想要的行为,那么您不应该将其设置为静态.您可以在一个翻译单元中定义它并在另一个翻译单元中声明它extern.

即使变量是static你可以将指向static变量的指针传递给另一个转换单元中的函数.内部链接仅适用于变量的名称,您仍然可以通过不要求您命名变量的方式来访问它.