## Appendix C Table of Type Descriptors

The type descriptor is the character which follows the type number and an equals sign. It specifies what kind of type is being defined. See String Field, for more information about their use.

digit
`(`
  Type reference; see String Field.
`-`
  Reference to builtin type; see Negative Type Numbers.
`#`
  Method (C`++`); see Method Type Descriptor.
`*`
  Pointer; see Miscellaneous Types.
`&`
  Reference (C`++`).
`@`
  Type Attributes (AIX); see String Field. Member (class and variable) type (GNU C`++`); see Member Type Descriptor.
`a`
  Array; see Arrays.
`A`
  Open array; see Arrays.
`b`
  Pascal space type (AIX); see Miscellaneous Types. Builtin integer type (Sun); see Builtin Type Descriptors. Const and volatile qualified type (OS9000).
`B`
  Volatile-qualified type; see Miscellaneous Types.
`c`
  Complex builtin type (AIX); see Builtin Type Descriptors. Const-qualified type (OS9000).
`C`
  COBOL Picture type. See AIX documentation for details.
`d`
  File type; see Miscellaneous Types.
`D`
  N-dimensional dynamic array; see Arrays.
`e`
  Enumeration type; see Enumerations.
`E`
  N-dimensional subarray; see Arrays.
`f`
  Function type; see Function Types.
`F`
  Pascal function parameter; see Function Types
`g`
  Builtin floating point type; see Builtin Type Descriptors.
`G`
  COBOL Group. See AIX documentation for details.
`i`
  Imported type (AIX); see Cross-References. Volatile-qualified type (OS9000).
`k`
  Const-qualified type; see Miscellaneous Types.
`K`
  COBOL File Descriptor. See AIX documentation for details.
`M`
  Multiple instance type; see Miscellaneous Types.
`n`
  String type; see Strings.
`N`
  Stringptr; see Strings.
`o`
  Opaque type; see Typedefs.
`p`
  Procedure; see Function Types.
`P`
  Packed array; see Arrays.
`r`
  Range type; see Subranges.
`R`
  Builtin floating type; see Builtin Type Descriptors (Sun). Pascal subroutine parameter; see Function Types (AIX). Detecting this conflict is possible with careful parsing (hint: a Pascal subroutine parameter type will always contain a comma, and a builtin type descriptor never will).
`s`
  Structure type; see Structures.
`S`
  Set type; see Miscellaneous Types.
`u`
  Union; see Unions.
`v`
  Variant record. This is a Pascal and Modula-2 feature which is like a union within a struct in C. See AIX documentation for details.
`w`
  Wide character; see Builtin Type Descriptors.
`x`
  Cross-reference; see Cross-References.
`Y`
  Used by IBM's xlC C`++` compiler (for structures, I think).
`z`
  gstring; see Strings.