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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)c語(yǔ)言教程:C51變量

          單片機(jī)c語(yǔ)言教程:C51變量

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

          void main(void)
          {
          unsigned int a;
          unsigned char b;
          do{
          for (a=0;a50000;a++)
          P1_0 = 0; //點(diǎn)亮P1_0
          for (a=0;a50000;a++)
          P1_7 = 0; //點(diǎn)亮P1_7
          for (b=0;b255;b++)
          {
          for (a=0;a10000;a++)
          P1 = b; //用b的值來(lái)做跑馬燈的花樣
          }
          P1 = 255; //熄滅P1上的LED
          for (b=0;b255;b++)
          {
          for (a=0;a10000;a++) //P1_1閃爍
          P1_1 = 0;
          for (a=0;a10000;a++)
          P1_1 = 1;
          }
          }while(1);
          }

          . Keil c51指針

          c支持一般指針(Generic Pointer)和存儲(chǔ)器指針(Memory_Specific Pointer).

          1. 1. 一般指針

          一般指針的聲明和使用均與標(biāo)準(zhǔn)C相同,不過同時(shí)還能說(shuō)明指針的存儲(chǔ)類型,例如:

          long * state;為一個(gè)指向long型整數(shù)的指針,而state本身則依存儲(chǔ)模式存放。

          char * xdata ptr;ptr為一個(gè)指向char數(shù)據(jù)的指針,而ptr本身放于外部RAM區(qū),以上的long,char等指針指向的數(shù)據(jù)可存放于任何存儲(chǔ)器中。

          一般指針本身用3個(gè)字節(jié)存放,分別為存儲(chǔ)器類型,高位偏移,低位偏移量。

          2. 2. 存儲(chǔ)器指針

          基于存儲(chǔ)器的指針說(shuō)明時(shí)即指定了存貯類型,例如:

          char data * str;str指向data區(qū)中char型數(shù)據(jù)

          int xdata * pow; pow指向外部RAM的int型整數(shù)。

          這種指針存放時(shí),只需一個(gè)字節(jié)或2個(gè)字節(jié)就夠了,因?yàn)橹恍璐娣牌屏俊?p>3. 3. 指針轉(zhuǎn)換

          即指針在上兩種類型之間轉(zhuǎn)化:

          l 當(dāng)基于存儲(chǔ)器的指針作為一個(gè)實(shí)參傳遞給需要一般指針的函數(shù)時(shí),指針自動(dòng)轉(zhuǎn)化。

          l 如果不說(shuō)明外部函數(shù)原形,基于存儲(chǔ)器的指針自動(dòng)轉(zhuǎn)化為一般指針,導(dǎo)致錯(cuò)誤,因而請(qǐng)用“#include”說(shuō)明所有函數(shù)原形。

          l 能強(qiáng)行改變指針類型。

          的存儲(chǔ)類別

          一、static(靜態(tài)局部)。

          1、靜態(tài)局部變量在程序整個(gè)運(yùn)行期間都不會(huì)釋放內(nèi)存。

          2、對(duì)于靜態(tài)局部變量,是在編譯的時(shí)候賦初值的,即只賦值一次。如果在程序運(yùn)行時(shí)已經(jīng)有初值,則以后每次調(diào)用的時(shí)候不再重新賦值。

          3、如果定義局部變量的時(shí)候不賦值,則編譯的時(shí)候自動(dòng)賦值為0。而對(duì)于自動(dòng)變量而言,定義的時(shí)候不賦值,則是一個(gè)不確定的值。

          4、雖然靜態(tài)變量在函數(shù)調(diào)用結(jié)束后仍然存在,但是其他函數(shù)不能引用。

          二、用extern聲明外部變量。

          用extern聲明外部變量,是為了擴(kuò)展外部變量的作用范圍。比如一個(gè)程序能由多個(gè)源程序文件組成。如果一個(gè)程序中需要引用另外一個(gè)文件中已經(jīng)定義的外部變量,就需要使用extern來(lái)聲明。

          正確的做法是在一個(gè)文件中定義外部變量,而在另外一個(gè)文件中使用extern對(duì)該變量作外部變量聲明。

          c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


          單片機(jī)相關(guān)文章:單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)視頻教程


          單片機(jī)相關(guān)文章:單片機(jī)工作原理


          存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理


          塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
          激光器相關(guān)文章:激光器原理


          評(píng)論


          相關(guān)推薦

          技術(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); })();