I often see source code using types like uint32, uint64 and I wonder if they should be defined by the programmer in the application code or if they are defined in a standard
If you are using C99 just include stdint.h. BTW, the 64bit types are there iff the processor supports them.
stdint.h