C 全局范围和文件范围之间有什么区别?
我发现另一个线程包含一些信息,但我仍然有点困惑。然而,我认为这是正确的。但我认为全局范围和文件范围是一样的 我的选项有本地/功能范围、全局范围、文件范围。 这是指C,如果这有区别的话C 全局范围和文件范围之间有什么区别?,c,C,我发现另一个线程包含一些信息,但我仍然有点困惑。然而,我认为这是正确的。但我认为全局范围和文件范围是一样的 我的选项有本地/功能范围、全局范围、文件范围。 这是指C,如果这有区别的话 QUESTION MY ANSWER 1) external static variables file scope 2) internal static variables local scope 3) global functions gl
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中的静态函数获取
文件作用域,即它只能在定义它的文件中使用。其中asglobal scope
表示该函数甚至可以从其他C文件调用。
所以文件范围
意味着您只能在该C文件中使用该函数。而global scope
意味着可以从其他C文件调用该函数。当您在编译以创建可执行文件时合并2个C文件时,它就会出现在图中。C中的静态函数获得文件范围,即它只能在定义它的文件中使用。其中asglobal scope
表示该函数甚至可以从其他C文件调用。
所以文件范围
意味着您只能在该C文件中使用该函数。而global scope
意味着可以从其他C文件调用该函数。当您在编译创建可执行文件时合并2个C文件时,它就会出现在图中。Global是文件范围。@pmg;是的。知道了。谢谢:)好的@nos,我在简化。全局作用域是指文件作用域和外部链接。全局是指文件作用域。@pmg;是的。知道了。谢谢:)好的@nos,我在简化。全局范围指的是文件范围和外部链接。链接和范围是有区别的。文件范围中的标识符可以具有内部链接(用静态
存储类表示),也可以具有外部链接。在文件范围中,一个带有外部链接的函数/变量通常被称为“全局”,它区分了链接和范围。文件范围中的标识符可以具有内部链接(用静态
存储类表示),也可以具有外部链接。文件范围内具有外部链接的函数/变量通常称为“全局”。