A symbol table is simply a collection of information about each of the symbols in each scope in the program. An entry in a symbol table typically contains:
- The name of the symbol
- The unrelocated address of the symbol
- The storage type of the symbol
- The size of the storage represented by the symbol
- etc.
If it's a member of a struct or class, it will contain a pointer to the parent symbol.