| たぶんに std::string など全く不要で単純に「バイトの列」にすればよく
#define elementsof(x) (sizeof(x)/sizeof(0[x])) const uint8_t makedata[] = { 0x57, 0x01, 0x00, 0x00, 0x02, 0x3A }; TransmitData(makedata, elementsof(makedata));
で OK これならチェックサムや CRC を計算するのも簡単。
単なるバイト列として扱うとき 0x00 が配列途中にあっても「終端」ぢゃないっすよ。単に値。 今やるべきことは、バイト列+バイト数をセットにして扱うのが適切でしょ。 「文字列」という語は今は完全に忘れ去るべき時。
|