Developer's Topics
Chapter 7, Common Object File Format (COFF)

Symbol names

Symbol names

The first 8 bytes in the symbol table entry are a union of a character array and two longs. If the symbol name is eight characters or less, the (null-padded) symbol name is stored there. If the symbol name is longer than eight characters, then the entire symbol name is stored in the string table. In this case, the 8 bytes contain two long integers, the first is zero, and the second is the offset (relative to the beginning of the string table) of the name in the string table. Since there can be no symbols with a null name, the zeroes on the first 4 bytes serve to distinguish a symbol table entry with an offset from one with a name in the first 8 bytes as shown in Table 7-17, ``Name field''.



Table 7-17 Name field

 Bytes   Declaration   Name       Description
 -----------------------------------------------------
 0-7     char          n_name     8-character null-
                                  padded symbol name
 0-3     long          n_zeroes   Zero in this field
                                  indicates the name
                                  is in the string
                                  table
 4-7     long          n_offset   Offset of the name
                                  in the string table

Special symbols generated by the C compilation system are discussed in ``Special symbols''.