typedef unsigned int size_t;
This type is used to hold size definitions. Since sizes are always positives, this type is usually defined as an unsigned long, but may be defined as an unsigned 64-bit int on newer systems.
typedef int ptrdiff_t;
This type is used to define difference between two pointers. Depending on which of the pointers is larger, this value may be positive or negative.