How addresses are stored in the symbol table under Solaris on a Sparc machine: Symbol Table Section: .dynsym index value size type bind oth ver shndx name [12] 0x000208d0 0x00000004 OBJT GLOB D 0 .data intConstant [18] 0x000208c8 0x00000008 OBJT GLOB D 0 .data floatConstant [16] 0x000208c0 0x00000001 OBJT GLOB D 0 .data charLit The value field holds the address for the object. The floatConstant needs 8 btyes so the address for the int is 8 bytes past the floatConstant. 208d0 int - 208c8 float ----- 8 bytes The char only takes 1 btye, but data must be aligned on word boundaries on Sparc thus, charLit is allocated 8 btyes. 208c8 float - 208c0 char ----- 8 bytes