程序中定义变量有时u8,u16,u32怎么选择

2024-05-16

1. 程序中定义变量有时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;

扩展资料:
CPU按照其处理信息的字长可以分为:
8位微处理器、16位微处理器、32位微处理器以及64位微处理器等。字、半字是根据处理器的特性决定的,字节则都是8bit。
Stm32是一个32位处理器,所以它的字是32位(一次处理4个字节的数据),半字是16位(2个字节)。存储半字数据的寄存器是由类型为u16的变量访问的,但是如果类型为u8的变量只能访问更低的8位数据,那么u32变量将被很好地读取,并且根据编译器的不同将以不同的方式写入。







与传统arm相比,stm32最大的优点是不需要对齐,三种类型的数据都可以无缝地存储在内存中。传统的arm7、arm9等是按地址对齐的,这意味着8或16位数据占用4字节的空间,导致内存的浪费。

程序中定义变量有时u8,u16,u32怎么选择

最新文章
热门文章
推荐阅读