初学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哪里来的相关推荐

  1. c++语言程序设计——头文件和引用系统头文件、用户头文件的定义及使用方法

    文章目录 头文件 引用头文件 1.引用系统头文件 2.引用用户头文件 实例 注意 结语 头文件 头文件是拓展名为.h的文件,其包含了函数的声明和宏定义,它可以被多个源文件引用共享.头文件分为两种类型: ...

  2. c malloc 头文件_C 数据类型

    在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统.变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式. C 中的类型可分为以下几种: 序号 类型与描述 1 基本类型 ...

  3. 用#ifndef、#define、#endif避免头文件的重定义

    在一个大型项目里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量"重定义"的错误.在头文件中使用#ifndef.#define.#endi ...

  4. android studio ndk 引入系统头文件时出现红色波浪线

    我的解决方法: 原先目录名称为libs,修改目录名称为lib后,在CMakeLists.txt中执行Sync Now后,引入的系统头文件的红色波浪线消失,代码出现提示. 新情况 如果只创建一个.h头文 ...

  5. extern 用法,全局变量与头文件(重复定义)

    转自 https://www.cnblogs.com/chengmin/archive/2011/09/26/2192008.html 当你要引用一个全局变量的时候,你就要声明,extern int  ...

  6. c语言寄存器头文件共用重复定义,C语言头文件的使用

    让我们的思绪乘着时间机器回到大学一年级.C原来老师正在讲台上讲着我们的第一个C语言程序: Hello world! 文件名 First.c main() { printf("Hello wo ...

  7. ulong在C语言中的头文件,ULONG没有定义的 有关问题

    当前位置:我的异常网» C++ » ULONG没有定义的 有关问题 ULONG没有定义的 有关问题 www.myexceptions.net  网友分享于:2013-09-17  浏览:63次 ULO ...

  8. C99:C标准库接口的头文件集和功能定义参考

    C标准库C99头文件 <assert.h> <complex.h> <ctype.h> <errno.h> <fenv.h> <flo ...

  9. java定义异常的头文件_c++ 声明定义都在头文件中怎么include?

    瀉藥, @李毅 老大已經點名你出錯的地方了, @felix 老大也指出是ODR的問題, 看來窩除了能在上面說下原理沒什麼做了, 哈哈. 不過既然兩位老大都沒有將原理和你的庫結合, 那麼這個微小工作就由 ...

最新文章

  1. OpenVAS漏洞扫描
  2. Python A+B问题
  3. linux内核能否扩展,Linux内核用到的GCC扩展
  4. Linux下串口通信详解
  5. 在windows环境下ftp服务器的文件上传和下载
  6. 9种动态可视化技巧,快速提升可视化大屏能力(附模板)
  7. 最大值和最小值的差(信息学奥赛一本通-T1112)
  8. 舍 bpftrace 而取 systemtap 的代价和思考
  9. linux添加开机自启动脚本示例详解
  10. [转载] NumPy 基本操作(ndarray通用函数 / 常用函数)
  11. 使用CefSharp在.NET中嵌入Google kernel
  12. 单位计算机安全和保密措施,安全管理及保密措施
  13. 鸿蒙开发板Hi3861_驱动0.95_oled显示屏ssd1306_code-2.0-CANARY_双显示屏效果
  14. 经验| 张家口交通综合运行协调与应急指挥中心建设
  15. 华为网络设备-访问控制列表配置实验
  16. 国内电商系统为什么要以ThinkPHP为核心开发
  17. 【iOS地图导航】“步行导航”及“HUD导航”的实现,demo+高清源码,大家按需自取~~
  18. Ansible批量管理Windows服务器,winrm配置
  19. Matlab 多项式曲线拟合polyfit
  20. 手机和电脑如何制作gif动画

热门文章

  1. 选择服务器托管需要注意的一些因素
  2. dubbogo 回顾与展望
  3. 教你如何屏蔽 烦人的百度 搜索热点
  4. 中国人的时间分配里,藏着多少秘密
  5. Windows10如何设置宽带连接的自动启动
  6. AVD上网设置(ADSL宽带)
  7. “饿了么”创始人张旭豪:打造专注外卖的短物流平台,解决好“最后一公里”的配送,让餐厅的地点不再是关键
  8. 戴维营第六天上课总结
  9. 关于大公司和小公司的选择
  10. 中国地质大学计算机学院迎新群,地大迎新志愿者标兵