C语句看不明白,请教!

2019-12-24 18:38发布

本帖最后由 ltby00 于 2017-8-31 10:27 编辑

#define   data1     4
#define   data2     196
#define   ADDR1    0x00E000

u8  funa(void)
{
    u8  i,  j ,  bufa[(data1 + data2  ) / 8 + ((data1 + data2 )  % 8 ? 1:0)];  //

   SPI_FLASH_Read(bufa,  ADDR1,  (data1 + data2  ) / 8 + ((data1 + data2 )  % 8 ? 1:0) );    ///读SPI  FLASH
   for(i=0;  i< (data1 + data2  ) / 8 + ((data1 + data2 )  % 8 ? 1:0);  i++)
   {
      for(j=0;   j<8;   j++){
         if(i<= data1 /8  &&  j<  data1 )   continue;
         if(bufa  & 1<<j)    return   i*8 +j; ///是    if(bufa  & 1<<j)    return   i*8 +j;
     }
  }
  return   0xfe;
}

    看不明白(data1 + data2  ) / 8 + ((data1 + data2 )  % 8 ? 1:0) 应该指向FLASH芯片内的地址, 但是表达的什么 ?
 请教下大家!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。