据我了解,当从翻译单元调用函数并且该函数使用该翻译单元的全局变量时,变量地址是不可更改的。如果从此模块调用功能,地址不会发生变化。 我怎样才能提供,每次进入模块的函数都会更新变量地址?真的是在堆栈分配变量而不是在数据段分配变量吗? 例如,我们有模块MODULE和该模块的函数FUNC。我们还有该模块的 MODULE2 和 FUNC2。变量VAR是MODULE的全局变量。
调用模块的FUNC
我认为每个翻译单元都有自己的全局变量实例。
如果是这样,请在所有需要该变量的
static
文件包含的头文件中声明它
.c
,并将指向该变量的指针传递给应该使用它的函数。