關鍵字就是已被c語言本身使用,不能作其它用途使用的字。例如關鍵字不能用作變數名、函式名等
由ansi標準定義的c語言關鍵字共32個:
auto double int struct break else long switch
case enum register typedef char extern return union
const float short unsigned continue for signed void
default goto sizeof volatile do if while static
根據關鍵字的作用,可以將關鍵字分為資料型別關鍵字和流程控制關鍵字兩大類。
1 資料型別關鍵字
a.基本資料型別(5個)
void:宣告函式無返回值或無引數,宣告無型別指標,顯式丟棄運算結果
char:字元型型別資料,屬於整型資料的一種
int:整型資料,通常為編譯器指定的機器字長
float:單精度浮點型資料,屬於浮點資料的一種
double:雙精度浮點型資料,屬於浮點資料的一種
b .型別修飾關鍵字(4個)
short:修飾int,短整型資料,可省略被修飾的int。
long:修飾int,長整形資料,可省略被修飾的int。
signed:修飾整型資料,有符號資料型別
unsigned:修飾整型資料,無符號資料型別
c .複雜型別關鍵字(5個)
struct:結構體宣告
union:共用體宣告
enum:列舉宣告
typedef:宣告型別別名
sizeof:得到特定型別或特定型別變數的大小
d .儲存級別關鍵字(6個)
auto:指定為自動變數,由編譯器自動分配及釋放。通常在棧上分配
static:指定為靜態變數,分配在靜態變數區,修飾函式時,指定函式作用域為檔案內部
a、當我們把乙個全域性變數宣告為static時:只有它的作用範圍變為本原始檔,也就是屬性由external變為internal,其它不變;
b、當我們把函式宣告為static時:它的作用範圍變為本原始檔,也就是屬性由external變為internal;
c、當我們把區域性變數宣告為static時:預設初始化值為0,並且只在第一次定義時初始化;記憶體儲存區域不再是棧,而是在靜態儲存區;生命週期不再是所在函式,而是整個程序;其它不變。
register:指定為暫存器變數,建議編譯器將變數儲存到暫存器中使用,也可以修飾函式形參,建議編譯器通過暫存器而不是堆疊傳遞引數
extern:指定對應變數為外部變數,即標示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數和函式時在其他模組中尋找其定義。
const:宣告唯讀變數,與volatile合稱「cv特性」,指定變數不可被當前執行緒/程序改變(但有可能被系統或其他執行緒/程序改變)
volatile:與const合稱「cv特性」,指定變數的值有可能會被系統或其他程序/執行緒改變,強制編譯器每次從記憶體中取得該變數的值
volatile 修飾的變數不允許編譯器對與它有關的運算做任何優化;用volatile定義的變數可能會在程式外被改變,所以每次都必須從記憶體中讀取,而不能把他放在cache或暫存器中重複使用。一般用在以下幾個地方:
a、並行裝置的硬體暫存器(如:狀態暫存器)
b、乙個中斷服務子程式中會訪問到的非自動變數(non-automatic variables)
c、多執行緒應用中被幾個任務共享的變數
2 流程控制關鍵字
a .跳轉結構(4個)
return:用在函式體中,返回特定值(或者是void值,即不返回值)
break:跳出當前迴圈或switch結構
goto:無條件跳轉語句
b .分支結構(5個)
if:條件語句,後面不需要放分號
else:條件語句否定分支(與if連用)
switch:開關語句(多重分支語句)
case:開關語句中的分支標記
default:開關語句中的「其他」分支,可選。
c .迴圈結構(3個)
for:for迴圈結構,for(1;2;3)4;的執行順序為1->2->4->3->2...迴圈,其中2為迴圈條件。在整個for迴圈過程中,表示式1只計算一次,表示式2和表示式3則可能計算多次,也可能一次也不計算。迴圈體可能多次執行,也可能一次都不執行。
do:do迴圈結構,do 1 while(2); 的執行順序是1->2->1...迴圈,2為迴圈條件
while:while迴圈結構,while(1) 2; 的執行順序是1->2->1...迴圈,1為迴圈條件
C語言關鍵字
c語言關鍵字 在檔案範圍的教訓和關鍵字,你知道靜態變數保持他們的價值觀,甚至不在他們超出範圍的破壞。比如說呢。int generateid int main this program prints 01 2 請注意,s nid一直保持它的價值的跨多個函式呼叫。static關鍵字有另一種意思當應用到全...
C語言關鍵字
關鍵字就是已被c語言本身使用,不能作其它用途使用的字。例如關鍵字不能用作變數名 函式名等 由ansi標準定義的c語言關鍵字共32個 auto double int struct break else long switch case enum register typedef char extern...
c語言關鍵字
c 語言標準定義的32 個關鍵字 1 auto 宣告自動變數,預設時編譯器一般預設為auto int 宣告整型變數 double 宣告雙精度變數 雙精度浮點型 long 宣告長整型變數 char 宣告字元型變數 float 宣告浮點型變數 單精度浮點型 6.1 float的有效位通常有 位,指的是小...