11

int値を次のように変換する正しい方法ですかuint8_t:

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

x が 0 未満になることはないと仮定しますgcc。上記の行に対して警告は表示されませんが、それが正しいかどうか、または int を uint8_t に変換するより良い方法があるかどうかを確認したかっただけです。

PS標準関数を提案する場合、LinuxでCを使用します

4

1 に答える 1

18

それは正しいですが、キャストは必要ありません:

uint8_t y = (uint8_t) x;

と同等です

uint8_t y = x;

xuint8_t上記の宣言では、初期化の前に暗黙的に変換され ます。

于 2013-07-26T13:28:27.457 に答える