Search code examples
cinttype-conversionuint8t

converting int to uint8_t


is it a correct way to convert an int value to uint8_t:

int x = 3; 
uint8_t y = (uint8_t) x;

assume that x will never be less than 0. Although gcc does not give any warning for the above lines, I just wanted to be sure if it is correct to do it or is there a better way to convert int to uint8_t?

P.S. I use C on Linux if you are going to suggest a standard function


Solution

  • It is correct but the cast is not necessary:

    uint8_t y = (uint8_t) x;
    

    is equivalent to

    uint8_t y = x;
    

    x is implicitely converted to uint8_t before initialization in the declaration above.