Declarator Syntax

A declarator has the form:

    /---------------------\
                         |
>>--------------------------->
      \-*-/  |-volatile-|
             \-const----/
   /-----------------------------------------------------\
                                                        |
>------identifier-------------------------------------------><
     \-(--declarator--)-/  |-subscript_declarator------|
                           |-(--parameter_type_list--)-|
                           \-(------------------)------/
                                \-identifier-/

A qualifier is one of: const, volatile or _Packed. The compiler also implements the _Seg16, _Export , and _Inline qualifiers.

C++ does not support the _Packed keyword.

A declarator can contain a subdeclarator. A subdeclarator has the form:

>>-----------------------------identifier------------->
    | /-----------------\ |  \-(--subdeclarator--)-/
    |                  | |
    \-----------------*---/
        |-volatile-|
        \-const----/
>----------------------------><
   \-subscript_declarator-/

A subscript declarator describes the number of dimensions in an array and the number of elements in each dimension. A subscript declarator has the form:

>>--[---------------------------]-------------------------------------><
       \-constant_expression-/     | /---------------------------\ |
                                   |                            | |
                                   \---[--constant_expression--]---/