スキップしてメイン コンテンツに移動

投稿

11月, 2024の投稿を表示しています

c/c++でunionを使う

unionを使い倒そう というわけでもないのですが・・・今、えるいーだーの電文を色々いじっていてそういえばunionを使ってコーディングをサボ・・・楽にしようとちょっとunionを使っているのですがみんなどんなときに使ってるんだろうとか気になったので私のunionの使い方の紹介です # include < Arduino.h > # include < vector > struct TBleMsg_Head {     uint8_t Length ;   //!<    電文長     uint8_t serialNo ; //!<    連番     // 何か色々     uint8_t rslv [ 2 ];  //!<    未使用 }; struct TBleRcvMsg_OnOff {     TBleMsg_Head head ; //!< 電文ヘッダ     uint8_t commond ;   //!< コマンド(on or off)     uint8_t num ;       //!< 何番目のLEDを制御するか     //...色々なデータ }; union URcvData {     TBleMsg_Head                 head ;       //!<    ヘッダデータ     // LED     TBleRcvMsg_OnOff             ledCommon ;  //!<    LEDのONOFF     //...色々な電文の構造体     uint8_t data [ 0 ];    //!<    解析したいデータの先頭アドレス @details    このバッファにデータを詰めて、他の構造体で解析しやすいようにする }; void hoge () {     std :: vector < uint8_t > data = pCharacteristic -> getValue (); // 受信したデータの先頭アドレス     size_t size = data . size ();