把 u32 當(dāng)作指向u8類型數(shù)據(jù)的指針 ,取這個(gè)指針指向的內(nèi)容,
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供武清網(wǎng)站建設(shè)、武清做網(wǎng)站、武清網(wǎng)站設(shè)計(jì)、武清網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、武清企業(yè)網(wǎng)站模板建站服務(wù),十余年武清做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
結(jié)果類型當(dāng)然是 u8 啦
類似方式在與硬件有關(guān)的編程中很常用的
函數(shù)前面會(huì)有U8,或是S16
可能是自定義類型
typedef unsigned char u8;
typedef signed short s16;
u8 無符號(hào)1字節(jié)整數(shù),相當(dāng) unsigned char
s16 帶符號(hào)16位整數(shù), 相當(dāng) short int
有什么作用? 聲明簡短,不易拼寫錯(cuò)。
這幾種方式都是在表達(dá)同1個(gè)意思,沒有區(qū)別。
typedef unsigned? ? ? ? ? ? ? char? ? ? ?uint8_t;
typedef unsigned short? ? ?int? ? ? ? ?uint16_t;
typedef unsigned? ? ? ? ? ? ? int? ? ? ? ?uint32_t;
typedef unsigned? ? ? ? ? __int64? ? ?uint64_t;
代碼示例:
voidTIM3_Int_Init(u16arr,u16psc)
{
//dosomething...
}
擴(kuò)展資料
u8,u16,u32的使用
示例:
#defineU32? unsignedint
#defineU16? unsignedshort
#defineS32? int
#defineS16? shortint
#defineU8? unsignedchar
#defineS8? char
unsignedchar=u8
unsignedshortint=u16
unsignedlongint=u32
u8是unsigned char,u16是unsigned short,u32是unsigned long。
u8,u16,u32都是C語言數(shù)據(jù)類型,分別代表8位,16位,32位長度的數(shù)據(jù)類型,一個(gè)字節(jié)是8位,所以u8是1個(gè)字節(jié),u16是2個(gè)字節(jié),u32是4個(gè)字節(jié)。
可以在stm32庫頭文件中找到數(shù)據(jù)類型的聲明
在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;
擴(kuò)展資料
CPU按照其處理信息的字長可以分為:8位微處理器、16位微處理器、32位微處理器以及64位微處理器等。字、半字是根據(jù)處理器的特性決定的,字節(jié)則都是8bit。
stm32是32bit處理器,所以它的字是32bit的(一次處理4字節(jié)長度的數(shù)據(jù)),半字自然就是16bit(2字節(jié))。存儲(chǔ)半字類型數(shù)據(jù)的寄存器由u16類型的變量訪問,但是如果用u8類型變量只能訪問該數(shù)據(jù)低8位,用u32類型變量讀的時(shí)候沒問題,寫的時(shí)候會(huì)因編譯器的不同而出現(xiàn)偏差。
stm32和傳統(tǒng)的arm相比最大的好處就是不需要對齊,三種類型的數(shù)據(jù)可以在內(nèi)存中無縫的存放。而傳統(tǒng)的arm7或arm9等是照著地址對齊的,就是說不管8bit或者16bit的數(shù)據(jù)都要占用4個(gè)字節(jié)的空間,這樣的結(jié)果就是造成內(nèi)存的浪費(fèi)。
參考資料來源:stdint.h - C++ Reference
參考資料來源:Header Files : stm32f10x.h
這里的 u8 a,就是一個(gè)參數(shù)定義,u8表示無符號(hào)8位整形的意思,在C語言里表示為unsigned char,比如你在c頭文件中有如下定義:
typedef unsigned char u8;
你就可以在包含該頭文件的原文件里使用u8來定義變量了,比如:
u8 a, b;
等同于:
unsigned char a, b;
謝謝
u8code在c語言中的作用:
1、表示無符號(hào)char字符類型。
2、數(shù)據(jù)范圍為0~+127[0~2^8-1]。
3、u8的內(nèi)存占用空間大小為只占一個(gè)字節(jié)。
4、占用內(nèi)存空間(RAM)的,而定義為code時(shí)是直接分配到程序空間中,編譯后,編碼占用的空間是程序存儲(chǔ)空間(ROM),該變量是只讀的,作為表格查詢用的。