C 全局范围和文件范围之间有什么区别?

C 全局范围和文件范围之间有什么区别?,c,C,我发现另一个线程包含一些信息,但我仍然有点困惑。然而,我认为这是正确的。但我认为全局范围和文件范围是一样的 我的选项有本地/功能范围、全局范围、文件范围。 这是指C,如果这有区别的话 QUESTION MY ANSWER 1) external static variables file scope 2) internal static variables local scope 3) global functions gl

我发现另一个线程包含一些信息,但我仍然有点困惑。然而,我认为这是正确的。但我认为全局范围和文件范围是一样的

我的选项有本地/功能范围、全局范围、文件范围。 这是指C,如果这有区别的话

QUESTION                      MY ANSWER

1) external static variables  file scope

2) internal static variables  local scope

3) global functions           global scope

4) global variables           global scope

5) local variables            local scope

6) formal parameters          local scope

7) static functions           file scope
但我认为全局范围和文件范围是一样的

文件范围表示标识符仅在其出现的特定文件中“已知”,例如
main.c

全局范围意味着它对整个程序可见,无论它在哪个
c
文件中定义

但我认为全局范围和文件范围是一样的

文件范围表示标识符仅在其出现的特定文件中“已知”,例如
main.c

全局范围意味着它对整个程序可见,无论它在哪个
c
文件中定义。

: 如果标识符的声明出现在任何块之外,则名称具有文件作用域。具有文件范围和内部链接的名称从声明到翻译单元末尾都可见

文件作用域变量的行为与全局变量完全相同,只是它们的使用仅限于声明它们的文件

static int foo1;    // file scoped variable
float foo2;         // global variable

int main(){
     ...
}
: 如果标识符的声明出现在任何块之外,则名称具有文件作用域。具有文件范围和内部链接的名称从声明到翻译单元末尾都可见

文件作用域变量的行为与全局变量完全相同,只是它们的使用仅限于声明它们的文件

static int foo1;    // file scoped variable
float foo2;         // global variable

int main(){
     ...
}

如果标识符的声明出现在任何块之外,则名称具有文件范围。具有文件范围和内部链接的名称从声明到翻译单元末尾都可见


全局范围全局命名空间范围是程序的最外层命名空间范围,可以在其中定义对象、函数、类型和模板。如果标识符的声明出现在所有块、命名空间和类之外,则名称具有全局命名空间范围。

如果标识符的声明出现在任何块之外,则名称具有文件范围。具有文件范围和内部链接的名称从声明到翻译单元末尾都可见


全局范围全局命名空间范围是程序的最外层命名空间范围,可以在其中定义对象、函数、类型和模板。如果标识符的声明出现在所有块、名称空间和类之外,则名称具有全局名称空间作用域。

c中的静态函数获取
文件作用域,即它只能在定义它的文件中使用。其中as
global scope
表示该函数甚至可以从其他C文件调用。

所以
文件范围
意味着您只能在该C文件中使用该函数。而
global scope
意味着可以从其他C文件调用该函数。当您在编译以创建可执行文件时合并2个C文件时,它就会出现在图中。

C中的静态函数获得
文件范围,即它只能在定义它的文件中使用。其中as
global scope
表示该函数甚至可以从其他C文件调用。

所以
文件范围
意味着您只能在该C文件中使用该函数。而
global scope
意味着可以从其他C文件调用该函数。当您在编译创建可执行文件时合并2个C文件时,它就会出现在图中。

Global是文件范围。@pmg;是的。知道了。谢谢:)好的@nos,我在简化。全局作用域是指文件作用域和外部链接。全局是指文件作用域。@pmg;是的。知道了。谢谢:)好的@nos,我在简化。全局范围指的是文件范围和外部链接。链接和范围是有区别的。文件范围中的标识符可以具有内部链接(用
静态
存储类表示),也可以具有外部链接。在文件范围中,一个带有外部链接的函数/变量通常被称为“全局”,它区分了链接和范围。文件范围中的标识符可以具有内部链接(用
静态
存储类表示),也可以具有外部链接。文件范围内具有外部链接的函数/变量通常称为“全局”。