微控制器嵌入式裝置儲存空間很有限,很小,並不像我們的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鍵盤輸入,現在就是這樣 這個時候,確認線是接好的,然後...