0

関数パラメーターの変換/定義に行き詰まっており、助けていただければ幸いです。経験豊富な c/c++ の人にとっては簡単なことだと思いますが、私にとってはそうではありません。

問題:

で使用する適切なパラメーターを作成しますmyCommmand(uint8 *pAddr)。これは を実行しsend(pAddr, 6)、これらのパラメーターを使用して次の 6 回ループします。

write(reinterpret_cast<unsigned char*>(pAddr)[i]);

私の問題は、pAddr が 6 バイトの配列を指す必要があることです。これは、符号なしバイト値 (0-255) または 16 進 00-FF として定義することが最も望ましいです。

制限

機能は変更しないものとします。パラメータを作成するだけです。

私の試み:

uint8 Addr[] = {00,22,122,205,16,04};
uint8 *pAddr = &Addr;

ただし、これによりエラー C2440 (uint(*)[6] を uint8 * に変換できません) が発生します。

望ましい解決策

私の試みのように、バイトまたは16進値をコードに書き込むことにより、このAddr配列またはストリーム、またはオブジェクトを作成して関数に渡すための適切で整形式の方法知りたいです。ブーストライブラリを使用できます。これを手伝ってくれてありがとう!

4

1 に答える 1

1

やってみました

uint8 Addr[] = {0x0,0x16,0x7a,0xcd,0x10,0x4};
uint8 *pAddr = Addr;

?

注:0プレフィックスは使用しないでください。これは、数値が 8 進数であることを意味するため、12 進数を010意味8します。

于 2012-09-10T09:42:42.597 に答える