STM32系统头文件之数据类型定义u8 u16哪里来的
初学STM32编程时,经常见到数据类型定义的符号:u8、u16等,51都是自己定义数据类型的简写符号,STM32是哪里定义的呢?今天没事就看了看系统头文件,数据类型的定义在其中的3个头文件里:
(1)stdint.h(摘取定义部分)
/** 'signed' is redundant below, except for 'signed char' and if* the typedef is used to declare a bitfield.*//* 7.18.1.1 *//* exact-width signed integer types */
typedef signed char int8_t;
typedef signed short int int16_t;
typedef signed int int32_t;
typedef signed __INT64 int64_t;/* exact-width unsigned integer types */
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned __INT64 uint64_t;/* 7.18.1.2 *//* smallest type of at least n bits *//* minimum-width signed integer types */
typedef signed char int_least8_t;
typedef signed short int int_least16_t;
typedef signed int int_least32_t;
typedef signed __INT64 int_least64_t;/* minimum-width unsigned integer types */
typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;
typedef unsigned __INT64 uint_least64_t;/* 7.18.1.3 *//* fastest minimum-width signed integer types */
typedef signed int int_fast8_t;
typedef signed int int_fast16_t;
typedef signed int int_fast32_t;
typedef signed __INT64 int_fast64_t;/* fastest minimum-width unsigned integer types */
typedef unsigned int uint_fast8_t;
typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
typedef unsigned __INT64 uint_fast64_t;/* 7.18.1.4 integer types capable of holding object pointers */
#if __sizeof_ptr == 8
typedef signed __INT64 intptr_t;
typedef unsigned __INT64 uintptr_t;
#else
typedef signed int intptr_t;
typedef unsigned int uintptr_t;
#endif/* 7.18.1.5 greatest-width integer types */
typedef signed __LONGLONG intmax_t;
typedef unsigned __LONGLONG uintmax_t;
(2)STM32F10x.h(摘取定义部分)
/*!< STM32F10x Standard Peripheral Library old types (maintained for legacy purpose) */
typedef int32_t s32;
typedef int16_t s16;
typedef int8_t s8;typedef const int32_t sc32; /*!< Read Only */
typedef const int16_t sc16; /*!< Read Only */
typedef const int8_t sc8; /*!< Read Only */typedef __IO int32_t vs32;
typedef __IO int16_t vs16;
typedef __IO int8_t vs8;typedef __I int32_t vsc32; /*!< Read Only */
typedef __I int16_t vsc16; /*!< Read Only */
typedef __I int8_t vsc8; /*!< Read Only */typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;typedef const uint32_t uc32; /*!< Read Only */
typedef const uint16_t uc16; /*!< Read Only */
typedef const uint8_t uc8; /*!< Read Only */typedef __IO uint32_t vu32;
typedef __IO uint16_t vu16;
typedef __IO uint8_t vu8;typedef __I uint32_t vuc32; /*!< Read Only */
typedef __I uint16_t vuc16; /*!< Read Only */
typedef __I uint8_t vuc8; /*!< Read Only */
(3)core_cm3.h(摘取部分)
/*** IO definitions** define access restrictions to peripheral registers*/#ifdef __cplusplus#define __I volatile /*!< defines 'read only' permissions */
#else#define __I volatile const /*!< defines 'read only' permissions */
#endif
#define __O volatile /*!< defines 'write only' permissions */
#define __IO volatile /*!< defines 'read / write' permissions */
STM32系统头文件之数据类型定义u8 u16哪里来的相关推荐
- c++语言程序设计——头文件和引用系统头文件、用户头文件的定义及使用方法
文章目录 头文件 引用头文件 1.引用系统头文件 2.引用用户头文件 实例 注意 结语 头文件 头文件是拓展名为.h的文件,其包含了函数的声明和宏定义,它可以被多个源文件引用共享.头文件分为两种类型: ...
- c malloc 头文件_C 数据类型
在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统.变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式. C 中的类型可分为以下几种: 序号 类型与描述 1 基本类型 ...
- 用#ifndef、#define、#endif避免头文件的重定义
在一个大型项目里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量"重定义"的错误.在头文件中使用#ifndef.#define.#endi ...
- android studio ndk 引入系统头文件时出现红色波浪线
我的解决方法: 原先目录名称为libs,修改目录名称为lib后,在CMakeLists.txt中执行Sync Now后,引入的系统头文件的红色波浪线消失,代码出现提示. 新情况 如果只创建一个.h头文 ...
- extern 用法,全局变量与头文件(重复定义)
转自 https://www.cnblogs.com/chengmin/archive/2011/09/26/2192008.html 当你要引用一个全局变量的时候,你就要声明,extern int ...
- c语言寄存器头文件共用重复定义,C语言头文件的使用
让我们的思绪乘着时间机器回到大学一年级.C原来老师正在讲台上讲着我们的第一个C语言程序: Hello world! 文件名 First.c main() { printf("Hello wo ...
- ulong在C语言中的头文件,ULONG没有定义的 有关问题
当前位置:我的异常网» C++ » ULONG没有定义的 有关问题 ULONG没有定义的 有关问题 www.myexceptions.net 网友分享于:2013-09-17 浏览:63次 ULO ...
- C99:C标准库接口的头文件集和功能定义参考
C标准库C99头文件 <assert.h> <complex.h> <ctype.h> <errno.h> <fenv.h> <flo ...
- java定义异常的头文件_c++ 声明定义都在头文件中怎么include?
瀉藥, @李毅 老大已經點名你出錯的地方了, @felix 老大也指出是ODR的問題, 看來窩除了能在上面說下原理沒什麼做了, 哈哈. 不過既然兩位老大都沒有將原理和你的庫結合, 那麼這個微小工作就由 ...
最新文章
- OpenVAS漏洞扫描
- Python A+B问题
- linux内核能否扩展,Linux内核用到的GCC扩展
- Linux下串口通信详解
- 在windows环境下ftp服务器的文件上传和下载
- 9种动态可视化技巧,快速提升可视化大屏能力(附模板)
- 最大值和最小值的差(信息学奥赛一本通-T1112)
- 舍 bpftrace 而取 systemtap 的代价和思考
- linux添加开机自启动脚本示例详解
- [转载] NumPy 基本操作(ndarray通用函数 / 常用函数)
- 使用CefSharp在.NET中嵌入Google kernel
- 单位计算机安全和保密措施,安全管理及保密措施
- 鸿蒙开发板Hi3861_驱动0.95_oled显示屏ssd1306_code-2.0-CANARY_双显示屏效果
- 经验| 张家口交通综合运行协调与应急指挥中心建设
- 华为网络设备-访问控制列表配置实验
- 国内电商系统为什么要以ThinkPHP为核心开发
- 【iOS地图导航】“步行导航”及“HUD导航”的实现,demo+高清源码,大家按需自取~~
- Ansible批量管理Windows服务器,winrm配置
- Matlab 多项式曲线拟合polyfit
- 手机和电脑如何制作gif动画