<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 《C與指針》讀書(shū)筆記六

《C與指針》讀書(shū)筆記六

作者: 時(shí)間:2016-08-15 來(lái)源:網(wǎng)絡(luò ) 收藏

  在以前也使用過(guò)的運算,但是在這本書(shū)里作者詳細的介紹了的“算數運算”、“關(guān)系運算”。的算數運算一般是 指針±整數。實(shí)現起來(lái)非常簡(jiǎn)單,我有位同事在R校驗時(shí)也使用了。我們可以摘錄一段。

本文引用地址:http://dyxdggzs.com/article/201608/295500.htm

  U16 RC;

  U8 CRCH, CRCL;

  U8 *pUNChar;

  CRC = out_crc(UART0.RX_buf,UART0.RX_count-2);

  pUNChar = &CRC;

  CRCH = *(pUNChar++);

  CRCL = *pUNChar;

  此段代碼在單片機上運行,所以U16是16位無(wú)符號整型數據,也就是unsigned int CRC。U8是一個(gè)無(wú)符號char型數據。 CRC 接收了out_crc( )函數的返回。也就是一組數的crc計算結果。需要將CRC拆分為兩個(gè)8位數據。我們使用一個(gè)pUNChar指針指向該整型數據。在單片機中整型高8位存儲在地址,低8位存儲在高地址。

  CRCH = *(pUNChar++); 該條語(yǔ)句實(shí)現兩個(gè)功能。第一將pUNChar指向地址的值賦給CRCH。也就是*(pUNChar)賦給CRCH, 其實(shí)就是CRC的高8位賦給CRCH。第二pUNChar自增。也就是pUNChar++。 其實(shí)等價(jià)于以下兩條語(yǔ)句:

  CRCH = *pUNChar;

  pUNChar++;

  pUNChar++其實(shí)就是將pUNChar的值加1。也就是pUNChar指向CRC低8位。

  CRCL = *pUNChar;就非常好理解了。將pUNChar地址的值賦給CRCL。簡(jiǎn)單快速的實(shí)現了一個(gè)整型數據的拆分。其中用到了指針的加法運算。pUNChar是U8類(lèi)型,所以pUNChar++是pUNChar值增加1。

  加入指針的類(lèi)型是U16,加法運算會(huì )怎樣。這個(gè)問(wèn)題可以實(shí)驗獲得。

  U16 arrary[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } ;

  U16 *pU16;

  pU16 = arrary;

  pU16++;

  pU16 = arrary;是將pU16指向arrary首個(gè)成員地址,即arrary[0]的地址。

  pU16++是將pU16指向arrary第二個(gè)成員地址,即arrary[1]的地址。arrary[1]與arrary[0]地址相差2。因為arrary是U16,2個(gè)字節。所以地址相差為2. pU16++也就使pU16的值增大了2。所以指針的算數運算的結果與本身的類(lèi)型有關(guān)。指針關(guān)系運算其實(shí)可以不使用的。比如書(shū)中的例子:

  #define N_VALUES 5

  float values[N_VALUES]

  float *vp;

  for( vp =&values[0]; vap < &values[N_VALUES];)

  *vap++ = 0;

  初始化了一個(gè)values數組,并且全部初始化為0。如果按照一般的寫(xiě)法應該為

  char i;

  for( i =0; i

  values[ i ] = 0.0;

  再見(jiàn)到作者的實(shí)現方法之前,我一直是用這種方法?,F在覺(jué)得作者的方法比較簡(jiǎn)單。



關(guān)鍵詞: C 指針

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>