File scope is the scope of an identifier declared outside a function or block. In C, the name main has file scope because its declaration is not inside parentheses or braces. Identifiers with file scope are commonly called globals. section 2.2
Declarations outside a function
int main(int, char*[]); int argc; [[maybe_unused]] char* argv[]; double A[5]; size_t I; The declarations shown outside a function or block occupy file scope. A function body, a for construct, and its loop body introduce nested block scopes beneath file scope. section 2.2
int main(int, char*[]); int argc; [[maybe_unused]] char* argv[]; double A[5]; size_t I;
Inspect representative declarations placed at file scope, including main, variables, an array, and a size_t object. section 2.2

