欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

C語言定義的變量有哪些

錢淋西2年前15瀏覽0評論

C語言定義的變量有哪些?

你好,一個八年C語言編程經驗的工程師來回答你的提問,關于C語言定義的變量有哪些?分別存儲幾個字節?根據我的經驗,回答如下:

首先,考慮不同硬件平臺的特性問題

可以說C語言是一門跨平臺可編譯的編程語言,同一段代碼,只要對應的硬件平臺有編譯器的支持,就可以編譯運行,所以我們在說C語言的變量類型和存儲空間時首先要考慮平臺的差異,比如我們8位的單片機80C51,16位的Intel 8086處理器,我們的32位的ARM和PowerPc,或者DSP芯片,再比如我們常見的64位MIPS處理器,它們有不同的指令集,編譯器,還有支持的位數,同一個C語言的類型,在不同處理器上可能占有的空間不一樣,所以我以下回答拿最常見的32位處理器為例說明。

其次,關于C語言常用變量類型

C語言中變量的類型基本分為:整型,浮點型,字符型,數組,結構體,枚舉和聯合體等,下面分類說明:

1、整型變量

一般整型變量 就是我們經常寫的int型,整型變量又分為短整型short int 。由于符號的加入,又分為有符號和無符號之分。所以總結如下:

無符號整型 unsigned int

有符號整型 (signed) int

無符號半整型 unsigned short (int)

有符號半整型 (signed) short (int)

括號內部分可省略

2、浮點型

有單精度和雙精度之分:

單精度 float

雙精度 double

3、字符型

按有無符號:

有符號 (signed) char

無符號 unsigned char

4、數組

按緯度分

一維數組 type Buffer[ ]

二維數組 type Buffer[ ][ ]

多維數組 type Buffer[ ][ ]……[ ]

5、結構體

struct name

{

type1 value1;

type2 value2;

……

typen valuen;

}

6、枚舉

enum name

{

name1,

name2,

……

namen

}

7、聯合體

union name

{

value1 ,

value2,

……

valuen

}

然后,關于不同類型存儲字節數

32位處理器前提下

整型:4字節

短整型:2字節

字符型:1字節

數組: 類型字節數*數組元素個數

結構體:結構體內所有元素空間和

備注:考慮編譯器對于結構體的字節對齊操作,可使用#pragma pack(n)預編譯指令,對齊結構體,然后計算

枚舉:4字節

聯合體:體內最大元素所占空間

最后,動態獲取變量大小

如果不確定當前硬件平臺,指定變量的占用空間情況,可使用sizeof關鍵字進行計算,比如sizeof(int),會計算出占用字節數,括號可省略。

以上回答是我個人的經驗總結,純手工敲鍵盤打出來的,希望對你有幫助。

喜歡可以點贊,關注哦。