Copyright Digital Equipment Corp. All rights reserved.

Block

 A block is a compound statement.  It allows more than one statement
 to appear where a single statement ordinarily is used.  It is made
 up of a list of declarations and statements, enclosed in braces:

          { [declaration ...] [statement ...] }

 The declaration list is optional; if it is included, all
 declarations of variables are local to the block and supersede
 previous declarations for the duration of the block.  A block is
 entered normally when control flows into it, or when a goto
 statement transfers control to a label at the beginning of the
 block.  Each time the block is entered normally, storage is
 allocated for auto or register variables.  If, on the other hand, a
 goto statement transfers control to a label inside the block or if
 the block is the body of a switch statement, these storage
 allocations do not occur.  Blocks can be used wherever single
 statements are valid -- for example, as the action clause of an if
 statement:

           if ( i < 1 )
              {                       /* BEGINNING OF BLOCK */
                 char x;
                 for (x = 'a';  x <= 'z';  x++) 
                    printf("char = %c\n", x);
              }                       /* END OF BLOCK      */