C语言中u8 u16 u32含义,有关stm32的问题,程序里面的u8、u16这些是什么意思啊「建议收藏」
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;
typedef uint8_t u8;
扩展资料
CPU按照其处理信息的字长可以分为:8位微处理器、16位微处理器、32位微处理器以及64位微处理器等。字、半字是根据处理器的特性决定的,字节则都是8bit。
stm32是32bit处理器,所以它的字是32bit的(一次处理4字节长度的数据),半字自然就是16bit(2字节)。存储半字类型数据的寄存器由u16类型的变量访问,但是如果用u8类型变量只能访问该数据低8位,用u32类型变量读的时候没问题,写的时候会因编译器的不同而出现偏差。
stm32和传统的arm相比最大的好处就是不需要对齐,三种类型的数据可以在内存中无缝的存放。而传统的arm7或arm9等是照着地址对齐的,就是说不管8bit或者16bit的数据都要占用4个字节的空间,这样的结果就是造成内存的浪费。
参考资料来源:stdint.h – C++ Reference
参考资料来源:Header Files : stm32f10x.h
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184138.html原文链接:https://javaforall.cn
相关文章
- max31865C语言程序,max31865+pt100温度传感器实验代码
- 高精度 加减乘 阶乘 模板 ------------------------C语言——菜鸟级
- c语言switch例题注释,switch语句例子大全 C语言switch语句例题
- 【C语言】解决C语言题目中的多组输入问题
- Linux开发C语言程序的简易步骤(linux创建c程序)
- 系统将C语言程序移植到Linux系统(c移植到linux)
- C语言求完数(完全数)(详解版)
- GCC分步骤编译C语言程序
- Linux下运行的C语言编程之旅(linux下运行的c程序)
- 用Linux C语言创建多线程程序的方法(linuxc创建线程)
- Linux下使用C语言编写程序的操作指南(linux运行c语言程序)
- 程序快速开发Linux C语言应用程序(linuxc应用)
- C语言与MySQL: 编程必不可少的双剑合璧(c和mysql)
- Linux下使用C语言读写文件(linuxc读写文件)
- 探索Linux中C语言的功能知识(linux c语言函数)
- 用Linux C语言编写的流量统计程序(linuxc流量统计)
- MySQL路径池C语言拥抱互联网(c mysql路径池)
- 搭建C语言MySQL环境,调试Web程序必备(c mysql 环境)
- C语言与MySQL数据库备份与还原(c mysql备份还原)
- 数据库使用C语言连接Oracle数据库实现自动化管理(c 程序连接oracle)
- MySQL57与C语言的连接之路(c mysql5.7)
- C语言更新Oracle数据库的实践(c 更新 oracle)
- 数据库中的 c 程序如何在Oracle数据库中运行C语言程序(c 如何执行oracle)
- C语言与Oracle数据库的结合(c 加oracle数据库)
- 16种C语言编译警告(Warning)类型的解决方法