在C中使用全局变量调用静态函数
我在c文件中定义了一个静态函数,它使用文件的全局静态变量。如果我从另一个文件调用该函数,并且我定义了相同的静态全局变量,但具有不同的值,它会使用原始文件中的值还是其他文件中的值?在C中使用全局变量调用静态函数,c,global-variables,static-methods,C,Global Variables,Static Methods,我在c文件中定义了一个静态函数,它使用文件的全局静态变量。如果我从另一个文件调用该函数,并且我定义了相同的静态全局变量,但具有不同的值,它会使用原始文件中的值还是其他文件中的值? 如果没有,是否有一种方法可以在从不同文件调用的函数中使用全局参数而不将其作为输入接收?在源文件最外层定义的静态变量具有文件范围,即:它们仅在该文件中可见 例如,如果您有一个源文件foo.c: static int var; static int var; 还有一个bar.c: static int var; st
如果没有,是否有一种方法可以在从不同文件调用的函数中使用全局参数而不将其作为输入接收?在源文件最外层定义的静态变量具有文件范围,即:它们仅在该文件中可见 例如,如果您有一个源文件
foo.c
:
static int var;
static int var;
还有一个bar.c
:
static int var;
static int var;
名为
var
的变量有两个不同的副本。每个副本仅在其定义的文件中可见。在源文件最外层定义的静态变量具有文件范围,即:它们仅在该文件中可见
例如,如果您有一个源文件foo.c
:
static int var;
static int var;
还有一个bar.c
:
static int var;
static int var;
名为
var
的变量有两个不同的副本。每个副本仅在定义它的文件中可见。全局静态变量是文件本地变量。。。所以我猜答案是“不,不会的”和“不”。。。代码在哪里?此外,具有静态可见性的函数不能从其他文件调用。请看一看:“全局”和“静态”的可能重复实际上是同一件事。你的意思是静态
合格吗?全局静态变量是文件本地变量。。。所以我猜答案是“不,不会的”和“不”。。。代码在哪里?此外,具有静态可见性的函数不能从其他文件调用。请看一看:“全局”和“静态”的可能重复实际上是同一件事。你是说static
qualified?尽量避免这样命名,命名为foo\u var和bar\u var。调试时你会感谢自己。尽量避免这样命名,命名为foo\u var和bar\u var。调试时你会感谢自己。