帮我看看printf输出异常

2019-12-22 13:48发布

  1. uint8_t ReceData_Handle(void)
  2. {
  3. uint8_t rret = 0;
  4.         frame_head_data *p;
  5.         p = (frame_head_data *) Real_Data;
  6.         printf("%x ",p->cmd);
  7.         printf("%x ",Real_Data[19]);
  8.         //while(1);
  9.         if(p->cmd != CMD_REPEAT)     
  10.         {

  11.                 System_param.date_time[0] = Real_Data[11];
  12.                 System_param.date_time[1] = Real_Data[12];
  13.                 System_param.date_time[2] = Real_Data[13];
  14.                 System_param.date_time[3] = Real_Data[14];
  15.                 System_param.date_time[4] = Real_Data[15];
  16.                 System_param.date_time[5] = Real_Data[16];
  17.                 ChangeTime = 1;
  18.                 if(Real_Data[19] == 0x00)
  19.                 {
  20.                         rret = 0;
  21.                         printf(" 工作正常 ");
  22.                         
  23.                 }
  24.         }
  25.         else if( p->cmd == CMD_REPORTCONFIG)
  26.         {
  27.                 rret = 0;
  28.                 printf("%x ",rret);
  29.                
  30.         }
  31. .....
  32. }
复制代码

以上满足这个else if( p->cmd == CMD_REPORTCONFIG)分支时候,为什么打印输出不是0,而是长整形的数据0x200000ab?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。