The integral data types are not strictly specified so that the compiler can choose whatever is most efficient for the target hardware. However there are some guarantees on minimum sizes of each type (e.g. int is at least 16-bits).
Check out this page: http://en.cppreference.com/w/cpp/language/types