web-dev-qa-db-ja.com

intをuint8_tに変換する

int値をuint8_tに変換する正しい方法ですか。

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

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

P.S.標準機能を提案する場合は、LinuxでCを使用します

7
Johan Elmander

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

uint8_t y = (uint8_t) x;

と同等です

uint8_t y = x;

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

12
ouah