The C spec says
There are four kinds of scopes: function, file, block, and function prototype.
Now if I do the following outside any
x is in the scope created by struct A, but A is in global scope. This is what the "spec" calls file-scope but the name is misleading because all files that you include share that scope.
x
struct A
A