首页 > 其他 > 详细

结构体成员变量的操作方法

时间:2019-06-27 10:26:42      阅读:185      评论:0      收藏:0      [点我收藏+]

typedef struct{
  uint8_t Header;
  uint8_t Id;
  uint8_t Cid;
  uint8_t Len;
  uint8_t Data[10];
  uint8_t Chk;
  uint8_t Tail;
}CmdFrameStr;

CmdFrameStr SendFrameCmd;

void FrameCmdPackage()                             //命令打包
{
  uint8_t i = 0;
  uint8_t *pData;                                 //定义指针变量

  SendFrameCmd.Cid = RcvFrameCmd.Cid;

  SendFrameCmd.Chk = SendFrameCmd.Id + SendFrameCmd.Cid + SendFrameCmd.Len;
  for(i=0; i<SendFrameCmd.Len; i++)
  {
    SendFrameCmd.Chk += SendFrameCmd.Data[i];
  }

  //方法一:
  pData = (uint8_t *)&SendFrameCmd;               //将结构体的地址强制转换为uint8_t类型的指针,并将其赋值给指针变量(这里的结构体都是uint8_t类型)
  Usart1_TxBuf[0] = *pData++;                     //通过对指针变量的操作得到结构体的成员值     
  Usart1_TxBuf[1] = *pData++; 
  Usart1_TxBuf[2] = *pData++; 
  Usart1_TxBuf[3] = *pData++;
  Usart1_TxBuf[4] = *pData++; 

  //方法二:

  CmdFrameStr *tempData;                          //定义结构体指针

  tempData = &SendFrameCmd;                       //指针指向结构体地址

  Usart1_TxBuf[0] = temp->Header;                 //操作指针得到结构体的成员变量值

  //方法三:

  Usart1_TxBuf[0] = SendFrameCmd.Header           //直接操作结构体

}

 

结构体成员变量的操作方法

原文:https://www.cnblogs.com/lian-meng/p/11095346.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!