单片机c语言中u8是什么意思,stm32常用数据类型 U8、U16、U32到底代表什么?
在Keil MDK 開發環境里,比如一個 無符號32位整形數據會有很多種表示方法:
1.unsigned int 32 (C語言標準表達方法)
2.uint32_t ;
3.u32;
這三種方式都是在表達同一個意思。可為什么ST的開發人員要搞的這么亂呢? 其實ST 搞這么多花樣,無非是想開發人員在寫代碼時定義數據類型能少寫幾個符號,然后又因為前后版本升級,為了兼容舊版本(主要是V2.0)才會出現這么多表示方法。不管他怎么換,都是基于標準C來的,看清楚以下幾個文件你就OK了:core_cm3.h ?;stm32f10x.h ?; stdint.h; ?其中每個文件大概作用如下:
stdint.h 這里放著C語言的標準表達方式//第36行開始
typedef ? signed ? ? ? ? ?char ? ? ? int8_t; ?// ?標準表達方式 signed char 被等同于 int8_t;
typedef ? signed short ?int ? ? ? ? int16_t;
typedef ? signed ? ? ? ? ? int ? ? ? ? int32_t;//在32位環境里,int代表4個字節32位!!
typedef ? signed ? ? ? __int64 ? ? int64_t;
typedef unsigned ? ? ? ? ? ? ?char ? ? ? uint8_t;
typedef unsigned short ? ? int ? ? ? ? uint16_t;
typedef unsigned ? ? ? ? ? ? ?int ? ? ? ? uint32_t;
typedef unsigned ? ? ? ? ?__int64 ? ? uint64_t;
……
stm32f10x.h 這個文件主要是為了兼容舊版本吧
typedef ? uint32_t ? u32;///32位
typedef ? uint16_t ? u16;///16位
typedef ? uint8_t ? ? u8;///8位
……
core_cm3.h 文件主要針對動態 靜態 變量修飾符做出類型擴展
#ifdef __cplusplus
#define ? __I ? ? volatile
#else
#define ? __I ? ? volatile const
#endif
#define ? ? __O ? ? volatile
#define ? ? __IO ? ?volatile
……
總結
以上是生活随笔為你收集整理的单片机c语言中u8是什么意思,stm32常用数据类型 U8、U16、U32到底代表什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python学习笔记:个税起征点上调至5
- 下一篇: redis分布式锁--》死锁问题解决策略