ansi c標準c語言共有32個關鍵字,如下:
auto
break
case
char
const
continue
default do
double
else
enum
extern
float
forgoto
ifint
long
register
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while
2023年12月16日,iso推出了c99標準,該標準新增了5個c語言關鍵字:
inline
restrict
_bool
_complex
_imaginary
2023年12月8日,iso發布c語言的新標準c11,該標準新增了7個c語言關鍵字:
_alignas
_alignof
_atomic
_static_assert
_noreturn
_thread_local
_generic
目前一般用的c語言都是ansi c標準,部分編譯器支援c99標準。注意,c語言的關鍵字是區分大小寫的。程式設計鳥在其部落格c語言關鍵字解析中,對這些關鍵字進行了分類,在此借鑑一下,我按照此分類對ansi c標準的c語言關鍵字做簡要介紹。
第一類,有關資料「模子」的關鍵字:void、char、short、int、long、float、double、sizeof;c語言關鍵字第二類,有關資料符號的關鍵字:signed、unsigned;
第三類,構造型別:struct、union、enum、typedef;
第四類,有關儲存與生命週期的型別:auto、static、extern、register、const、volatile;
第五類,有關語句的型別:if、else、for、while、do、switch、case、default、goto、break、continue、return
資料型別
void
宣告函式無返回值或無引數,宣告無型別指標
char
宣告字元型變數或函式
short
宣告短整型變數或函式
int宣告整型變數或函式
long
宣告長整型變數或函式
float
宣告浮點型變數或函式
double
宣告雙精度變數或函式
sizeof
計算資料型別長度
資料符號
signed
宣告有符號型別變數或函式
unsigned
宣告無符號型別變數或函式
構造型別
struct
宣告結構體變數或函式
union
宣告共用資料型別
enum
宣告列舉型別
typedef
用以給資料型別取別名
有關儲存與生命週期的型別
auto
宣告自動變數
static
宣告靜態變數
extern
宣告變數是在其他檔案
register
宣告暫存器變數
const
宣告唯讀變數
volatile
說明變數在程式執行中可被隱含地改變
有關語句的型別
if條件語句
else
條件語句否定分支(與 if 連用)
for一種迴圈語句
while
迴圈語句的迴圈條件
do迴圈語句的迴圈體
switch
用於開關語句
case
開關語句分支
default
開關語句中的「其他」分支
goto
無條件跳轉語句
break
跳出當前迴圈
continue
結束當前迴圈,開始下一輪迴圈
return
子程式返回語句(可以帶引數,也可不帶引數)迴圈條件
關鍵字的大概說明如上表所示。本文不對每乙個關鍵字做詳細介紹,個人認為資料型別、符號型別和有關語句的型別不是難點,本文從這3個型別中選幾個可能出錯的稍作展開。
資料型別是最基本的關鍵字,表示乙個變數的型別。不同的型別所佔的位元組大小不同,我用vs2010驗證如下:
int i;
unsigned int ii;
char c;
short sh;
double dou;
float f;
long l;
long int li;
long long int lli;
char str1=;
char str2=;
char str3[5]=;
printf("length of int: %d\r\n",sizeof(i));
printf("length of unsigned int: %d\r\n",sizeof(ii));
printf("length of char: %d\r\n",sizeof(c));
printf("length of short: %d\r\n",sizeof(sh));
printf("length of double: %d\r\n",sizeof(dou));
printf("length of float: %d\r\n",sizeof(f));
printf("length of long: %d\r\n",sizeof(l));
printf("length of long int: %d\r\n",sizeof(li));
printf("length of long long int: %d\r\n",sizeof(lli));
printf("length of str1: %d\r\n",sizeof(str1));
printf("length of str2: %d\r\n",sizeof(str2));
printf("length of str3: %d\r\n",sizeof(str3));
這裡注意sizeof是用來計算變數所佔空間大小,單位為位元組。輸出結果如下:
資料型別和資料符號配合使用,c語言預設型別都是有符號的,只有前面用unsigned修飾,才表示無符號型別。
不同的系統資料型別的長度是不一樣的,我的vs2010是32位系統的。32位系統和64位系統比較如下(**中長度單位是位元):
i表示:int型別
l表示:long型別
p表示:pointer指標型別
32表示32位系統
64表示64位系統
上面的例子中對字串進行了簡單表示。可以發現str1、str2、str3長度是不一樣的。
像str1這樣不指定陣列長度,直接用雙引號賦值,除了正常的字串外,在字串最後,系統會預設加乙個『\0』,表示結束。所以str1的長度就是6位元組;
像str2這樣雖不指定陣列長度,但是用單引號賦值,資料長度就是實際字元個數。所以str2長度就是5位元組;
像str3這樣指定資料長度,用雙引號賦值,sizsof顯示長度是陣列指定的長度,也就是5位元組。
c語言關鍵字之static
c語言關鍵字之extern
c語言關鍵字之register
c語言關鍵字之const
c語言關鍵字之volatile
c語言關鍵字之struct
c語言關鍵字之union
c語言關鍵字之enum
c語言關鍵字之typedef
[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的有效位通常有 位,指的是小...