c語言中u8,u16,u32


u8是unsigned char,u16是unsigned short,u32是unsigned long。

u8,u16,u32都是C語言數據類型,分別代表8位,16位,32位長度的數據類型,一個字節是8位,所以u8是1個字節,u16是2個字節,u32是4個字節。

可以在stm32庫頭文件中找到數據類型的聲明

在stdint.h中:

typedef unsigned char uint8_t;

typedef unsigned short uint16_t;

typedef unsigned long uint32_t;

在stm32f10x.h 中:

typedef uint32_t u32;

typedef uint16_t u16;

typedef uint8_t u8;

擴展資料

CPU按照其處理信息的字長可以分為:8位微處理器、16位微處理器、32位微處理器以及64位微處理器等。字7a686964616fe4b893e5b19e31333431346439、半字是根據處理器的特性決定的,字節則都是8bit。

stm32是32bit處理器,所以它的字是32bit的(一次處理4字節長度的數據),半字自然就是16bit(2字節)。存儲半字類型數據的寄存器由u16類型的變量訪問,但是如果用u8類型變量只能訪問該數據低8位,用u32類型變量讀的時候沒問題,寫的時候會因編譯器的不同而出現偏差。

stm32和傳統的arm相比最大的好處就是不需要對齊,三種類型的數據可以在內存中無縫的存放。而傳統的arm7或arm9等是照着地址對齊的,就是說不管8bit或者16bit的數據都要占用4個字節的空間,這樣的結果就是造成內存的浪費。

參考資料來源:stdint.h - C++ Reference

參考資料來源:Header Files : stm32f10x.h



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM