1. 單片機C語言的一個問題 static bit a 什麼意思
在單片機C語言中,bit
a表示定義一個變數a,其類型為bit型,所謂的bit型就是用一位二進制數來表示變數。bit型的取值為0或1。
static
bit
a表示定義一個bit型的變數a,其為靜態變數,只初始化一次即可。
2. 單片機如何定義有符號變數
1.C語言中,變數一般有兩種屬性,分別是:存儲類別、數據類型。 例如定義一個變數:static unsigned char var = 0; 上述語句中,static(靜態的)為變數的存儲類別,unsigned char(無...
2.存儲類別:即變數在代碼運行期間的存儲方式。c語言提供了4種,分別是:auto(自動的)、static(靜態的)、extern(外部的)、register(寄存器的)。 默認情況下,如果不加存儲類別,則該變數是auto類的.
3. 如圖所示:單片機的Keil軟體里在子函數里為什麼定義static 會有警告
靜態局部變數在函數內定義,生存期為整個源程序,但作用域與自動變數相同,只能在定義該變數的函數內使用。退出該函數後,盡管該變數還繼續存在,但不能使用它。所以 b =100會常駐內存,單片機的RAM本來就小,所以編譯器可能不允許。
4. static 在單片機c語言用用法
首先static變數不是全局變數,全局變數在整個程序中均可見。且可以在整個程序的任何位置進行修改。
而static變數,只在聲明它的函數內看見,也只有在聲明它的函數內可以被修改。即便在函數外或其它函數中有同名的變數,也和它不是同一變數。
和局部變數相比,局部變數在每次調用函數時,變數值都會重置。而static變數,在每次調用函數時,它都會保留這上次調用時最後一次賦值過的值。
總之,static是一種特殊的局部變數,它可以保存函數上次調用時這個變數的狀態。
5. 單片機C語言中static bit 是什麼類型側重點是後面的bit是什麼意思,前面的static是靜態
bit是位定義,就是單純一個位,類似於BOOL型變數,不過這個定義不是正規,不是所有的編譯器都能編譯的,static你都知道啦,我就不解釋了
6. static在51單片機中幾種用法
static(靜態) 是一種數據變數的存儲方式而已,不存在什麼用法之說,但了解它的特性,能幫你寫出好程序。
靜態變數的特性:
1、變數只定義一次(含定義時的初始化值);
2、只在定義范圍內有效(其他地方、函數並不認識這個變數);
3、函數結束,變數值不丟失。
變數有 全局變數、局部變數之分;
全局變數在程序中,分配有固定物理存儲空間,程序運行過程中,數據不丟失(就是自己有個房子)。
局部變數在程序中,沒有固定物理存儲空間。一般出現在子函數中,調用子函數,隨機分配存儲空間,子函數結束後,該空間回收,隨機分配給其他函數使用。(就是租屋,你不租了,就租給別人)
有些時候,你又希望這個局部變數能保持,這樣你下次回來還能接著算,於是就需要static 這個「靜態」功能了。它能讓這個分配的空間,一直給你保留著。
也許你會說,用全局變數就好了。是的,沒錯,它的功能幾乎與全局等價了。但為什麼不用全局,可能原因有以下2種:
1、全局變數對所有子函數都有效,誰都可以修改,可能會超出你的預計范圍(就是說,房子雖然是你的,但大家都有鑰匙,可以隨便進來換換裝修,你掌握並不了)
2、移植性高,子函數內的靜態局部變數,只需要輸出子函數即可。但全局變數,要麼需要主文件為你定義這個全局變數,要麼就會在多個C文件包含你的頭文件時,發生重復定義全局變數問題。
當然,除了靜態局部變數,還有靜態全局變數,這個用於模塊化程序設計里,為了避免其他模塊出現同名全局變數問題,就使用了只針對本模塊程序有效的 靜態全局變數
7. 單片機中的static語句 怎麼用
Static是靜態變數,在運行時不可以重新賦值,編譯後它的值就已經在你的bin里存在了,性質和define相近。
8. 單片機C語言的一個問題 static bit a 什麼意思
在單片機C語言中,bit a表示定義一個變數a,其類型為bit型,所謂的bit型就是用一位二進制數來表示變數。bit型的取值為0或1。
static bit a表示定義一個bit型的變數a,其為靜態變數,只初始化一次即可。
9. C語言中static是做什麼用的
static 用來說明靜態變數。如果是在函數外面定義的,那麼其效果和全局變數類似,但是,static定義的變數只能在當前c程序文件中使用,在另一個c代碼裡面,即使使用extern關鍵詞也不能訪問這個static變數。如果是在函數內部定義的,那麼這個變數只初始化一次。
10. 單片機變數定義類型
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為小數,當然,它也只佔四個位元組。