|
|
``Type entries by storage class'' shows the type entries that are legal for each storage class.
Type entries by storage class
d Entry | Storage | |||
---|---|---|---|---|
_ | typ Entry | Class | ||
Function? | Array? | Pointer? | Basic Type | |
C_AUTO | no | yes | yes | Any except T_MOE |
C_EXT | yes | yes | yes | Any except T_MOE |
C_STAT | yes | yes | yes | Any except T_MOE |
C_REG | no | no | yes | Any except T_MOE |
C_LABEL | no | no | no | T_NULL |
C_MOS | no | yes | yes | Any except T_MOE |
C_ARG | yes | no | yes | Any except T_MOE |
C_STRTAG | no | no | no | T_STRUCT |
C_MOU | no | yes | yes | Any except T_MOE |
C_UNTAG | no | no | no | T_UNION |
C_TPDEF | no | yes | yes | Any except T_MOE |
C_ENTAG | no | no | no | T_ENUM |
C_MOE | no | no | no | T_MOE |
C_REGPARM | no | no | yes | Any except T_MOE |
C_FIELD | no | no | no | T_ENUM, T_UCHAR, T_USHORT, T_UNIT, T_ULONG |
C_BLOCK | no | no | no | T_NULL |
C_FCN | no | no | no | T_NULL |
C_EOS | no | no | no | T_NULL |
C_FILE | no | no | no | T_NULL |
C_ALIAS | no | no | no | T_STRUCT, T_UNION, T_ENUM |
C_WEAKEXT | no | no | no | Any except T_MOE |
Conditions for the d entries apply to d1 through d6, except that it is impossible to have two consecutive derived types of function.
Although function arguments can be declared as arrays, they are
changed to pointers by default.
Therefore, no function argument
can have array as its first derived type.