c語言作用關鍵字:static const typedef extern register volatile
static:
1.修飾區域性變數時(在函式體內):乙個被宣告為靜態的變數在函式過程中值保持不變,使得宣告週期延長至程式結束,此時的變數存放區域為資料段上。(從而可以少使用全域性變數)
const使用判斷用就近原則。
其好處:在函式傳參時,修飾函式形參,防止實參在函式呼叫時被意外修改。
typedef:給型別重新命名,其中特例就是給函式指標重新命名
typedef int (*p_func)(int, int)
使用它可以增加**的可移植性,可讀性,開發效率提高,以及增加**的安全性;
1.移植性:在某些機器上,對於預設定義符號的某種型別,有些機器上預設為有符號,有些機器預設無符號數,當我們**移植到另外不同機器執行時候,如果使用typedef 給資料型別重新命名,只需要直接修改重新命名的型別為有/無符號即可。
2可讀性:我們可以把一些我們長度,姓名之類的重器名字這樣增加了**的可讀性,讓別人知道使用變數時候更加明白開發人員的意圖,如strlen函式原型返回值就是乙個size_t的型別,告訴別人返回的是乙個長度型別
3開發效率:對結構體重起名
4**安全性:**洩露時候,別人不得而知你的型別是什麼,從而增加了安全性。
extern:做外部宣告。
用extern修飾的都是宣告語句。使用宣告是一種良好的編碼規範。可以優化編譯速度
1.宣告全域性變數
2.宣告函式
rigister
修飾變數,將乙個變數盡可能的儲存在暫存器裡,減少cpu從記憶體中抓取資料的時間,從而提高**執行效率。
注意事項:
1.用rigister修飾的變數不可使用取位址符號。(&取的是記憶體中的位址)
2.不可修飾全域性變數,函式。只能修飾區域性變數
3.修飾cpu可接受的型別(有些cpu不接受浮點型運算)
volatitle :防止編譯器做預設優化
乙個定義為volatile的變數是說這個變數可能會意想不到的被改變,這樣,編譯就不會假設個變數的值。(編譯器優化:乙個值多次操作都不改變,編譯會進行優化,讓其放入cou暫存器中)
用例:1.並行裝置的硬體暫存器(如狀態暫存器)
2.乙個終端服務子程式中會訪問到的非自動變數
3.多執行緒應用被幾個任務共享的變數。
c語言中有些關鍵字還可以一起使用但是rigister跟static不可以
const與volatile(如唯讀狀態暫存器)等
c語言的一些關鍵字
1.switch case case後面只能是整型或者字元型的常量或者常量表示式,並且不要忘記了加default switch b case 3 cout a 2.return 關鍵字 return用於終止乙個函式並返回其後面跟著的值,若果是表示式一般加上括號,規範性。但是return 不可以返回指...
c語言的一些關鍵字
保留關鍵字 char short int unsigned long float double struct union void enum signed const volatile typedef auto case continue default do else for goto if re...
關鍵字 一些關鍵字用法總結
register 用register宣告的變數稱暫存器變數,在可能的情況下會直接存放在機器的暫存器中 但對32位編譯器不起作用,當global optimizations 全域性優化 開的時候,它會做出選擇是否放在自己的暫存器中 不過其它與register關鍵字有關的其它符號都對32位編譯器有效。c...