我在c文件中定义了一个静态函数,它使用文件的全局静态变量。如果我从另一个文件调用该函数并且我定义了相同的静态全局变量但具有不同的值,它是否会使用原始文件或其他文件中的值? 如果没有,有没有办法在我从不同文件调用的函数中使用全局参数而不接收它们作为输入?
答案 0 :(得分:2)
在源文件最外层定义的静态变量具有文件范围,即:它们仅在该文件中可见。
例如,如果您有源文件foo.c
:
static int var;
另一个bar.c
:
static int var;
变量有两个不同的副本,名称为var
。每个副本仅在定义它的文件中可见。