1.用register修飾變數時,盡可能會將這個變數儲存在cpu中的暫存器中,而不是通過記憶體定址的方式來訪問,是為了提高他的執行速率
2.register只能修飾整形和字元型,不能用來修飾浮點形。
3.區域性靜態變數不能用register來修飾。用register修飾的變數只能是區域性變數,不能是全域性變數。cpu的暫存器資源有限,因此不可能讓乙個變數一直佔著cpu暫存器
_ramfunc的意思就是把接下來的函式完全從flash複製到ram裡面執行,優點就是速度比在flash執行快多了,對實時性要求很高的操作有用。比如很多中斷函式都會加_ramfunc ,但是ram是有限的,所以不能把太多的函式都定義為_ramfunc
1.在函式體中,乙個被宣告為靜態的變數,在這一函式被呼叫的過程中,維持其值不變(該變數放在靜態變數區)
靜態區域性變數:區域性變數新增了static修飾之後,該變數就成為了靜態區域性變數。我們知道區域性變數在離開了被定義的函式後,就會被銷毀,而當使用static修飾之後,它的作用域就一直到整個程式結束。因此,在這裡static的作用就是限定生命週期。
2.在模組中,函式體外,乙個被宣告為靜態的變數可以被模組內的所有函式訪問,不能被模組外的其他函式訪問,他是乙個本地的全域性變數。
3.在模組內乙個被宣告為靜態的函式只能被這一模組內的其他函式訪問。static的作用就是限定作用域
1.欲阻止乙個變數被改變,可以使用const關鍵字,通常它需要初始化。
2.對指標來說,可以指定指標本身為const,也可以指定指標指向的資料為const或者同時指定為const
const int *test test是乙個指向常整型數的指標
int *const test test是乙個指向整型數的常指標
const int *const test test是乙個指向常整型數的常指標
3.可以節省空間,避免不必要的記憶體分配
4.提高執行效率
5.在傳引數的時候,用const修飾,防止在傳參過程中引數被修改
一般用來修飾全域性變數,以擴大全域性變數的使用域。
1.使得全域性變數或者函式在其他檔案中可以使用
2.告訴編譯器,由extern宣告的變數或者函式在其他檔案中
用其修飾的變數,是易改變的,即告訴cpu每次用該變數的時候,重新去記憶體中取,保證用的是最新的值,而不是暫存器中備份。多用於嵌入式開發。舉例:
1.並行裝置的硬體暫存器(狀態暫存器)
2.乙個中斷服務子程式中會訪問到的非自動變數
3.多執行緒應用中被幾個任務共享的變數。
類的幾個關鍵字
1 成員變數和區域性變數的區別 1 區域性變數 在方法中或者方法上 區域性變數在棧記憶體中 區域性變數隨著方法的結束而消失 區域性變數在使用前必須有值。2 成員變數 在類中方法外 在堆記憶體中 隨著物件的生成而出現,隨著物件的消失而消失 在初始化時可以不賦值。2 匿名物件 1 匿名物件一般只用一次,...
java的幾個關鍵字
public protected private 預設 均可修飾方法 屬性 protected不可以修飾類 1.public 使用範圍最廣,可以在其他包 package 內,呼叫這個類的public方法和屬性或者繼承 繼承中,子類重寫父類的public方法,範圍不能小於public。2.protec...
幾個關鍵字的小結
幾個常見關鍵字的用法小結 1.public private protected 它們用來修飾類 方法 屬性 使被修飾的類 方法 屬性的被呼叫範圍得到乙個限制。public是公開性最高的關鍵字 當它修飾乙個類的時候,被修飾的類可以被同乙個工程中的所有類的物件訪問 如工程a中有乙個類s,那麼對於a的任意...