将int转换为uint8_t

Joh*_*der 7 c int type-conversion uint8t

这是一个将int值转换为的正确方法uint8_t:

int x = 3; 
uint8_t y = (uint8_t) x;
Run Code Online (Sandbox Code Playgroud)

假设x永远不会小于0.虽然gcc没有给出上述行的任何警告,我只是想确定它是否正确或者是否有更好的方法将int转换为uint8_t?

PS如果你打算建议一个标准函数,我在Linux上使用C.

oua*_*uah 12

这是正确的,但演员没有必要:

uint8_t y = (uint8_t) x;
Run Code Online (Sandbox Code Playgroud)

相当于

uint8_t y = x;
Run Code Online (Sandbox Code Playgroud)

xuint8_t在上面的声明中初始化之前被隐含地转换为 .