ビットフィールドを使用して、FPU のないマイクロコントローラー用に作成しようとしている float ライブラリに簡単にアクセスしています。
問題は、ビットフィールドで動作させることができないように見えることです。見てみましょう:
typedef struct
{
union{
unsigned long mantissa: 23;
unsigned long exponent: 8;
unsigned long sign: 1;
float all;
};
}_float __attribute__((__packed__));
問題は、何かにアクセスまたは変更しようとすると、ビットフィールドがそれぞれ最後から 1,8,23 ビットと見なされることです。最後から23ビットのはずですが、8ビット、そして最後のビットです。ビットフィールドの使用を完全に誤解していない限り。パックを使用すると問題が解決すると思っていましたが、ご覧のとおりそうではありませんでした。
どんな助けでも本当にありがたいです。グーグルで何度もこのサイトにたどり着いたので、大きな期待を寄せています。