恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

volatile 关键字整理(嵌入式 C 标准)

  • 首页
  • 资讯中心
  • /
  • volatile 关键字整理(嵌入式 C 标准)

相关资讯

两块4K屏折进一个底座:一个程序员的桌面折腾实录 2026/10/21 20:44:26
PyWxDump 完全指南:在电脑上解密微信聊天记录并导出成可读文件 2026/10/21 20:44:26
Codex 一键安装三强版,不用折腾环境,本地桌面 AI 保姆教程 2026/10/21 20:44:26

最新资讯

从零手写最小LLM Agent:模型、工具、记忆与循环实战指南
Linux驱动开发进阶:从GPIO到设备树与input子系统完整实战
Linux安全排查命令实战:从进程、日志到网络定位入侵痕迹
力特FT-232驱动安装全攻略:从黄叹号到串口通信实战
大模型微调实战:从数据准备到部署避坑,如何让输出稳定可控
MFC自定义按钮开发:DrawItem原理与高DPI状态管理

今日推荐

SAP 屏幕上的金额未必存在数据库表里,从 WB2R_SV 的 Net Amount 看懂运行时计算
具身智能中‘指哪打哪’的视觉语言动作联合建模
AI时代人工翻译技术博客的价值与实践指南

本周热门

基于GMM的语音识别系统原理与MATLAB实现详解
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

volatile 关键字整理(嵌入式 C 标准)

发布时间:2026/10/21 20:44:26
volatile 关键字整理(嵌入式 C 标准) 一、核心本质volatile是编译期修饰符不改变变量本身任何固有属性仅约束编译器的代码优化行为。 含义提示编译器该变量的值可能被程序外部中断、硬件外设、其他线程异步修改不可缓存、不可删减读写操作。二、volatile 不会改变的变量固有属性数据类型volatile uint32_t data底层仍是 uint32_t运算、大小、取值规则不变。存储区域与生命周期局部 volatile 变量存栈、全局 / 静态 volatile 存全局区存储分配、生命周期、作用域不受修饰符影响。内存读写权限只读由const控制volatile 仅管优化volatile const硬件只读寄存器二者分工独立互不干涉。内存对齐、变量地址不改变对齐规则、不修改变量分配地址。运行时硬件标识仅影响编译阶段生成汇编CPU 运行时无特殊硬件标记不提供原子操作、互斥同步能力。三、volatile 仅修改的编译器优化规则禁止把变量值缓存到通用寄存器每次读写强制访问原始内存地址禁止删除看似 “无效” 的读写如轮询硬件状态寄存器的空循环禁止对该变量相关内存访问指令做重排、合并、化简。四、标准三大使用场景中断服务函数中共享的全局变量主循环轮询中断置位标志若无 volatile主线程缓存值会无法感知中断更新。volatile uint8_t int_flag; void ISR(void) { int_flag 1; } while(!int_flag);多线程间共享全局变量解决编译器缓存带来的可见性问题仅保证每次读内存不解决多线程竞态并发写仍需锁 / 原子操作。内存映射硬件外设寄存器IO、串口、状态寄存器等硬件地址每次读写对应硬件动作绝对不能被优化。// 只读硬件寄存器 #define UART_STATUS (*((volatile const uint32_t *)0x40001000))五、指针修饰区分高频易错点volatile uint32_t *p; // *p 指向的内容禁止优化指针p本身可缓存 uint32_t * volatile p; // 指针p自身禁止优化*p无volatile约束 volatile uint32_t * volatile p; // 指针、指向内容均禁止优化六、常见误区总结volatile ≠ 线程安全只解决编译器缓存可见性不提供并发保护不可滥用普通局部 / 无外部修改全局变量加 volatile 会频繁访问内存降低运行效率不能替代 const只读硬件寄存器必须搭配volatile const无法保证指令执行顺序、原子读写多线程并发写需配套互斥机制。七、一句话总结volatile 只修改编译器优化策略变量类型、存储、读写权限完全不变作用是强制每次访问内存适配中断、多线程、硬件寄存器三类异步修改场景。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号