## 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 The String Field, for more information about their use.

`digit`
`(`

  Type reference; see The String Field.

`-`

  Reference to builtin type; see Negative Type Numbers.

`#`

  Method (C`++`); see The ‘`#`’ Type Descriptor.

`*`

  Pointer; see Miscellaneous Types.

`&`

  Reference (C`++`).

`@`

  Type Attributes (AIX); see The String Field. Member (class and variable) type (GNU C`++`); see The ‘`@`’ Type Descriptor.

`a`

  Array; see Array Types.

`A`

  Open array; see Array Types.

`b`

  Pascal space type (AIX); see Miscellaneous Types. Builtin integer type (Sun); see Defining Builtin Types Using Builtin Type Descriptors. Const and volatile qualified type (OS9000).

`B`

  Volatile-qualified type; see Miscellaneous Types.

`c`

  Complex builtin type (AIX); see Defining Builtin Types Using 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 Array Types.

`e`

  Enumeration type; see Enumerations.

`E`

  N-dimensional subarray; see Array Types.

`f`

  Function type; see Function Types.

`F`

  Pascal function parameter; see Function Types

`g`

  Builtin floating point type; see Defining Builtin Types Using Builtin Type Descriptors.

`G`

  COBOL Group. See AIX documentation for details.

`i`

  Imported type (AIX); see Cross-References to Other Types. 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 Giving a Type a Name.

`p`

  Procedure; see Function Types.

`P`

  Packed array; see Array Types.

`r`

  Range type; see Subrange Types.

`R`

  Builtin floating type; see Defining Builtin Types Using 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 Defining Builtin Types Using Builtin Type Descriptors.

`x`

  Cross-reference; see Cross-References to Other Types.

`Y`

  Used by IBM’s xlC C`++` compiler (for structures, I think).

`z`

  gstring; see Strings.