這些都是自己定義的宏定義
u8來說
u8 是unsigned char宏定義得來的,說到unsigned char,那麼肯定有人會說為什麼用unsigned char,而不用signed char,這裡我先說一下sign char在c語言中預設是char,下面文章我會用char代替sign char。
這是因為char和unsigned char都在記憶體裡占一個位元組(byte),一個位元組有八位二進制,而char與signed char不同的是char的八位二進制中最高位是符号位,也就應了它的符号sign char,而unsigned char沒有符号。
是以char能表示-128~127, unsigned char沒有符号位,是以能表示0~255,
用個表格更直覺些
類型 | 位元組數 | 取值範圍 |
---|---|---|
char | 1 | -128~127 |
unsigned char | 1 | 0~255 |
在我們在硬體程式設計需要經常進行位操作,見到最多的就是八位一起操作了,那麼unsigned char正好有八位,可以滿足我們的需求,這就是為什麼我們經常能看到别人程式裡的引用u8來定義變量
u16來說
這裡跟u8差不多,u16是unsigned short宏定義的,可以直接對16位二進制進行操作
再看看經常在單片機裡用的宏定義
最後再來寫C語言中資料類型的範圍