Cで定数浮動小数点から生データバイトを取得しようとしています。これは読取り可能な定数バイト配列を作成するために行われています。これは以下で見ることができます。Cで#defineを使用して定数浮動小数点値の生データバイトを取得
#define FLOAT_TO_BYTES(value) \
(uint8_t)(value), (uint8_t)(value << 8), \
(uint8_t)(value << 16), (uint8_t)(value << 24)
const uint8_t byteArray[] = {
FLOAT_TO_BYTES(11.4)
};
問題は、ポインタや任意の種類のコードブロックを使用できないことです。浮動小数点値をシフトすることができないので、上記は機能しません。私は組合を使用しようとしましたが、どちらかを働かせることはできません。どんな助けでも大歓迎です!
あなたが本当にあなたのためにそれらのバイトを計算するためのプリプロセッサをしたい、またはそれはあなたが '符号なしchar'sの配列としてあなたのフロートへのアクセスを得ることは十分ありますか?後者の場合、 'const double x = 11.4;あなたは 'sizeof(bytearray)'も 'sizeof(double) 'にしたいですか? –
C言語とC++は異なる言語です。答えは実際にどのようにコーディングしているかによって異なる場合があります。 – kaylum
実際の実装では、byteArrayのサイズがKBなのでconstのuint8_t配列でなければならないので、バイトを計算するにはプリプロセッサが必要です – Drew