<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CodeVisionAVR中的一個(gè)配置

          CodeVisionAVR中的一個(gè)配置

          作者: 時(shí)間:2016-11-28 來源:網(wǎng)絡(luò) 收藏
          CodeVisionAVR中的一個(gè)配置
          (2010-06-22 14:41:23)
          標(biāo)簽:

          雜談

          分類: AVR單片機(jī)

          下面是一段簡單的程序:

          本文引用地址:http://www.ex-cimer.com/article/201611/323040.htm

          char a0;

          signed char a1;

          signed int a2;

          signed long a3;

          LCD_CLS();

          a0 = -16;

          a0 >>= 2;

          LCD_DispHex(8,0,a0,0,0);

          a0 = 16;

          a0 >>= 2;

          LCD_DispHex(64,0,a0,0,0);

          a1 = -16;

          a1 >>= 2;

          LCD_DispHex(8,8,a1,0,0);

          a1 = 16;

          a1 >>= 2;

          LCD_DispHex(64,8,a1,0,0);

          a2 = -16;

          a2 >>= 2;

          LCD_DispHexInt(8,16,a2,0,0);

          a2 = 16;

          a2 >>= 2;

          LCD_DispHexInt(64,16,a2,0,0);

          a3 = -16;

          a3 >>= 2;

          LCD_DispHexLong(8,24,a3,0,0);

          a3 = 16;

          a3 >>= 2;

          LCD_DispHexLong(64,24,a3,0,0);

          執(zhí)行結(jié)果是:

          3C 04

          FC 04

          FFFC 0004

          FFFFFFFC 00000004

          這讓我很納悶,為什么a0定義為char,a1定義為signed char,它們的運(yùn)算結(jié)果就不同了呢?通常情況下char型和signed char型、int型和signed int、long和signed long是完全一致的。

          經(jīng)檢查,原來CodeVisionAVR的工程配置中有一個(gè)小的設(shè)置,如右圖紅框勾出。

          如果此設(shè)置打勾選中,根據(jù)相關(guān)幫助,那么該工程中char型變量定義等同于unsigned char。這和通常意義上的認(rèn)知是不同的。

          所以,日后在軟件中盡量用signed char或unsigned char來明確定義變量類型,免得一不小心工程配置弄錯(cuò)了而帶來不必要的麻煩。



          關(guān)鍵詞: CodeVisionAVR中配

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();