File/global scope
Beginning of C only.
A name has file scope if the identifier's declaration appears outside of any block. A name with file scope and internal linkage is visible from the point where it is declared to the end of the translation unit.
End of C only.
Beginning of C++ only.
Global scope or global namespace scope is the outermost namespace scope of a program, in which objects, functions, types and templates can be defined. A name has global namespace scope if the identifier's declaration appears outside of all blocks, namespaces, and classes.
A name with global namespace scope and internal linkage is visible from the point where it is declared to the end of the translation unit.
A
name with global (namespace) scope is also accessible for the initialization
of global variables. If that name is declared extern
,
it is also visible at link time in all object files being linked.
A user-defined namespace can be nested within the global scope using namespace definitions, and each user-defined namespace is a different scope, distinct from the global scope.
End of C++ only.