STM32中不同变量类型大全(简单明了版)
STM32微控制器中,变量类型根据它们所占用的字节数进行分类。以下是常见的数据类型按照所占字节分类的整理:
1. 占用1字节(8位)
char
:带符号字符(-128到127)。unsigned char
:无符号字符(0到255)。int8_t
:8位带符号整数(-128到127)。uint8_t
:8位无符号整数(0到255)。bool
:布尔类型,通常为1字节(stdbool.h
定义的true
和false
)。2. 占用2字节(16位)
short
:带符号短整数(-32,768到32,767)。unsigned short
:无符号短整数(0到65,535)。int16_t
:16位带符号整数(-32,768到32,767)。uint16_t
:16位无符号整数(0到65,535)。wchar_t
:宽字符类型,大小因编译器和平台而异,在某些实现中可能为2字节。3. 占用4字节(32位)
int
:带符号整数(-2,147,483,648到2,147,483,647)。unsigned int
:无符号整数(0到4,294,967,295)。long
:通常与int
相同,32位带符号整数。unsigned long
:通常与unsigned int
相同,32位无符号整数。float
:单精度浮点数。int32_t
:32位带符号整数(-2,147,483,648到2,147,483,647)。uint32_t
:32位无符号整数(0到4,294,967,295)。pointer
:指针类型在STM32中通常占用4字节,无论指向什么类型的数据(int*
、char*
、void*
等)。4. 占用8字节(64位)
int64_t
:64位带符号整数(-9,223,372,036,854,775,808到9,223,372,036,854,775,807)。uint64_t
:64位无符号整数(0到18,446,744,073,709,551,615)。double
:在某些编译器或平台上为双精度浮点数(通常为64位),但在STM32上可能仍然为32位(取决于具体编译器设置)。5. 占用大小可变
int arr[10]
占用40字节(10个整数,每个4字节)。struct {
int a; // 4字节
char b; // 1字节
float c; // 4字节
} myStruct; // 总共占用9字节,但可能因内存对齐而占用12字节或更多。
union {
int a; // 4字节
float b; // 4字节
char c[10]; // 10字节
} myUnion; // 占用10字节(最大成员`char c[10]`)。
6. 枚举类型
enum
:枚举类型的大小由编译器决定,通常与int
相同,占用4字节,但也可能是其他大小。作者:小肖恩i