VirtualWire

So from this can I say uint8_t is like a data type ?

It isn't "like a data type". It IS a data type, just like int, float, byte, char, long, etc.

The u up front indicates unsigned. The int differentiates the type from floating point types. The 8 explicitly defines the size of the variables, in bits. The _t indicates that the type is a standard type. Every compiler is supposed to recognize the type, and allocate the same space for it.

This is not true of types like int. An int can be 16 bits, 32 bits, or 64 bits (or other unusual sizes), depending on the platform. A uint8_t is always 8 bits. A int32_t is always 32 bits. A uint64_t is always 64 bits.