普通に間違えたわ。右詰じゃなくて左詰だよな
r8 = 0xF8 & (color_rgb565 >> 8);
g8 = 0xFC & (color_rgb565 >> 3);
b8 = 0xF8 & (color_rgb565 << 3);
こうか。あと要C99以降になるけどuint16_tとかuint8_tとか書いた方が良いのかな

>>917
やはりか。というかググっていたらこんな記事が見つかった
EXP11-C. ビットフィールド構造体のレイアウトについて勝手な想定をしない
ttps://www.jpcert.or.jp/sc-rules/c-exp11-c.html
ビットフィールドによる特定のビットの読み書きはいずれにしろ実装依存なのか・・・