A block is a delimited sequence of statements that does the following:
The kinds of blocks are:
These blocks can contain declarations that are treated as local definitions of names. This is done to establish the scope of the names and to limit the allocation of automatic variables. These declarations are not known outside their own block, and the names cannot be referred to in the containing block. See Scope of declarations for more information.
Storage is allocated to automatic variables upon entry to the block where the storage is declared, and is freed upon exit from the block. See Scope of declarations, for more information.