尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

关于使用宏定义防止编译器编译优化的考虑

关于使用宏定义防止编译器编译优化的考虑
📅 发布时间:2026/6/19 12:48:00

#define mb() __asm__ __volatile__ ("" : : : "memory")
这个是告诉编译器内存内容已经改变,需要重新去读取;

因为编译器只是编译出来二进制,但是这些二进制的执行逻辑仍然是编译器制定的
有时候编译器会进行优化,比如while(flag == 0)编译器在从内存中读取一次flag 后发现flag = 0,执行循环;
发现循环没有更改flag ,编译器就觉得可以不用从内存读取flag了,反正没有flag进行改变,于是不再从内存读取flag;
但是可能DMA等中断会修改flag的值;所以是不合理的;就可能陷入死循环;

但是如果代码为 while (flag == 0) mb();编译器就不得不去内存重复读取flag的值;
因为mb()表示内存中的内存已经被修改了;编译器在编译的时候不会省略从内存读取flag的指令;

相关新闻

  • 2025广州知名留学中介有哪些公司
  • 2025 年 UV 甲油胶厂家最新推荐榜,技术实力与市场口碑深度解析,助力采购精准决策耐刮 UV 甲油胶/抗污 UV 甲油胶/哑光 UV 甲油胶/水性 UV 甲油胶/UV 甲油胶树脂公司推荐
  • 2025 年 UV 树脂定制厂家最新推荐榜,聚焦企业技术创新能力与市场服务口碑深度解析光固化/油性/3D 打印/甲油胶/三防漆/手感/真空电镀/准分子 UV 树脂公司推荐

最新新闻

  • 2026昭通2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水
  • 嵌入式Linux应用开发,有些坑真的没处说理去
  • 接口自动化测试CI/CD实战:从脚本到流水线的工程化构建
  • Gemini 1.0深度解析:多模态融合与实时网络感知技术实践
  • SPI协议深度解析:从CPHA/CPOL时序到OVRF/MODF错误处理实战
  • Python测试实战:pytest单元与集成测试的完整指南

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号