Block scope

From cppreference.com
< c‎ | language

If the declarator or type specifier that declares the identifier appears inside a block or within the list of parameter declarations in a function definition, the identifier has block scope, which terminates at the end of the associated block.

So, placement of an identifier's declaration (in a declarator or type specifier) inside a block or within the list of parameter declarations in a function definition means that the identifier has block scope. Block scope of an identifier extends from the declaration to the end of the block in which the declaration appears.

[edit] Example

Identifiers a, b, and c have block scope.

#include <stdio.h>
 
void f (int a)
{
    int b = 1;
    static int c = 2;
}   /* end of block associated with identifiers a,b,c */
 
 
int main(void)
{
    return 0;
}
/* end of this translation unit, end of file scope */

Possible output:

(none)