『壹』 C51程序設計中在定義變數類型時一般要求定義成什麼
C語言中,變數一般有兩種屬性,分別是:存儲類別、數據類型。
例如定義一個變數:static unsigned char var = 0; 上述語句中,static(靜態的)為變數的存儲類別,unsigned char(無符號字元型)為變數的數據類型,var為變數名,初始化值為0。
下面給你說明幾點。
存儲類別:即變數在代碼運行期間的存儲方式。c語言提供了4種,分別是:auto(自動的)、static(靜態的)、extern(外部的)、register(寄存器的)。
默認情況下,如果不加存儲類別,則該變數是auto類的,該關鍵字可以省略,其它三個不能省。static的用法是,定義洞梁滲一個局部變數,該變數只進行一次初始化,在程序運行期間一直佔用著內存,每次調用完畢都保持本次調用完後得到的值(而auto調用完一次即釋放內存,下次調用用從新進行初始化)。extern:一個變數被定義成全局變數,加上該關鍵字,意思是提醒編譯器,該變數是在別的C文件中(即你想再一個C文件中調用另外一個C文件的變數,需用該關鍵字進行引入)。register:渣沒定義一個變數為該存儲類型,建議編譯器將該變數存放在CUP內部寄存器中,以便該變數頻繁調用而提高代碼運行速度。注意,它是建議型的,一般用在循環次數多的地方,因為變數一般存放在內存中,每次CUP訪問它都得跑到內存去提取,次數多了,影響運行速度。放在內部寄存器就快多了(當然放不放我們不知道,只是建議編譯器這么做),這種變數也是用完就釋放。
數據類型:C語言提供了三種基本數據類型:char型 int型 float型。
默認情況下,char/int/float是指有符號的,即前面都省略了signed關鍵字,如果需要定義成無符號型的,需在前面加上不可省略的unsigned關鍵字。char佔一個位元組,int佔2個位元組(在有的環境下是4個位元組),float佔4個。表納脊示的數據范圍也比較明確,char一個位元組8位,共256種狀態,有符號的最高位表示符號,0為正,1為負,其餘7位表示數字位,2的7次方。int型16位 的,一樣。float型的數據必須要有小數點,一般float能表示6~7位有效數字。上述的數據類型中,如果范圍還不夠大,還可以定義成long型,即長整型,佔4個位元組,而浮點型可以定義成double型,可以表示16~17為小數,當然,它也只佔四個位元組。
其它還有指針型的變數,還有構造型的如結構體、共同體、枚舉等等。學單片機的還有bit型的。C語言概念很多,但都很簡單。重點是在用。世界上沒有純記憶的技術,只有一邊用一邊記憶的技術。
看到那麼多頭疼了吧?沒事,小夥子,哥看好你。
木棉城路過。
『貳』 c51多文件編譯中全局變數怎麼聲明
多個C文件的情況下,一般有多個對應的H文件。
假設AAA.C中定義了全局變數int abc;,那麼在對應的H文件aaa.h中定義 extern int abc;
如果在BBB.C中需要使用變數abc,那麼在BBB.C頭上#include "aaa.h"即可
另外,如果沒有aaa.h存在,那麼在BBB.C頭上寫extern int abc;也可以。
『叄』 單片機Keil C51 C語言多文件如何使用全局位變數跪拜!!
extern就可以。在一個文件里定義:
bdata m;
sbit x=m^1;
然後在另一個文件里聲明:
extern bdata m;(如果不使用m可以不聲明。)
extern bit x;
這樣就可以使用了。如果變數較多,建議樓上的方法,用全局頭文件。