From my understanding C99 new types such as uint32_t, uint_fast64_t, uintmax_t etc. are defined in <stdint.h>. However, I noticed they're also defined in stdlib.h, and from gnu.org I found out that it is one of many headers checked, but in other websites only <stdint.h> is referenced.
If I use these types including only <stdlib.h>, which has them defined in my implementation, will my program be portable for other platforms or it could not work because in another computer they're only defined in <stdint.h>?
My guess is that if I compile the program for every architecture/OS from my computer there won't be any problems, but the compilation could fail from another one because in that particular implementation the new types are only defined in another header.