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定义的truefalse)。
  • 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. 占用大小可变

  • 数组(Array):大小根据元素类型和数组长度决定。例如,int arr[10]占用40字节(10个整数,每个4字节)。
  • 结构体(Struct):占用大小取决于结构体内成员的类型和排列。例如:
    struct {
        int a;       // 4字节
        char b;      // 1字节
        float c;     // 4字节
    } myStruct;     // 总共占用9字节,但可能因内存对齐而占用12字节或更多。
    
  • 联合体(Union):大小为联合体内最大成员的大小。例如:
    union {
        int a;       // 4字节
        float b;     // 4字节
        char c[10];  // 10字节
    } myUnion;      // 占用10字节(最大成员`char c[10]`)。
    
  • 6. 枚举类型

  • enum:枚举类型的大小由编译器决定,通常与int相同,占用4字节,但也可能是其他大小。
  • 作者:小肖恩i

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32中不同变量类型大全(简单明了版)

    发表回复