Include <inttypes.h> or <stdint.h>.
(union overhead): New union. Use two of these instead of two unsigned ints as the overhead at the front of a malloced block. This ensures we get the alignment that we need. (smalloc): Updated to use union overhead. Some useless casts removed. (sfree): Ditto. (srealloc): Ditto.