嵌入式C開發中變數型別的使用

2021-09-02 16:46:32 字數 1417 閱讀 3701

微控制器嵌入式裝置儲存空間很有限,很小,並不像我們的pc機。

所以一定要用有限的空間去完成「無限大」的事情。

比如:char乙個位元組8位,而int4個位元組啊,32位,只要在char範圍內,當然要用char了

所以嵌入式程式設計中經常會使用char定義變數,

下面是嵌入式常用的typedef定義的資料型別

typedef signed char           int8;            1       -128~+127

typedef short (int)           int16;          2      -32768~32768

typedef int                      int32;               4         -2147483648~+2147483648

typedef long (int)              int32/int64;     4/8

typedef long long (int)        int64;              8

typedef unsigned char              uint8;              1        0~255

typedef unsigned short              uint16;             2        0~65535

typedef unsigned int                   int32;             4             0~4294967295

typedef unsigned long              uint32;                   4/8

typedef unsigned long long              uint64;              8

typedef int bool;

#define true 1

#define false 0

注意:1.int/long/short等不指定signed/unsigned時都預設是signed,char在標準中是unsigned

2. 無論是哪種儲存方式,均是最高位為符號位,0代表正數,1代表負數。剩餘位儲存實際值。

3.int,short,long所佔的位元組數由編譯器決定

4.所以int 也可以儲存字元,只不過比較浪費儲存空間,例如int c=』d』,在記憶體中儲存的是ascii碼→(000000000000….)01101000,列印時用十進位制顯示(%d)為68,十六進製制顯示(%#x)為0x44,字元顯示(%c)為d

5.如果 65 是數字型別, 存放的是 (65)這個數字的補碼;『a』這個字元 和 65這個數字在記憶體中是一樣的。

如果 「65」 是個字串, 存放的是 每個字元對應的 ascii 碼,就像你說的一樣。

嵌入式C開發

將n左移m位 int byte to left move int n int m if n 1 if n 1 return ret 將n右移m位 int byte to right move int n int m if n 1 if n 1 ret n return ret 閒著無聊,自己寫了兩個...

嵌入式程式設計中,列舉變數的使用

rel file list href file c 5cdocume 7e1 5chome 5clocals 7e1 5ctemp 5cmsohtml1 5c01 5cclip filelist.xml 嵌入式程式設計中,列舉變數的使用 在 windows vs2008 中,列舉變數的值都是要占用 ...

嵌入式開發中串列埠問題

用筆記本,往往沒有串列埠,一般用usb轉串列埠,總結了下,首先一般這個轉換器都是pl2303的,可以在配套的驅動資料夾下看到乙個pl2303.dat的資料夾,就是它了。window下,用dnw或者securecrt,有時會出現不通,或者不能從pc鍵盤輸入,現在就是這樣 這個時候,確認線是接好的,然後...