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

【编程技巧】do{..........}while(0)在嵌入式中的作用

【编程技巧】do{..........}while(0)在嵌入式中的作用
📅 发布时间:2026/6/19 5:35:38

View Post

【编程技巧】do{..........}while(0)在嵌入式中的作用

主要作用:
1、避免宏展开时的语法错误

// 有问题的宏定义
#define SWAP(a, b) \temp = a; \a = b; \b = temp;// 使用时
if (x > y)SWAP(x, y);  // 展开后语法错误!多了一个;

2、强制使用分号

使用 do while(0) 必须加分号,符合语句习惯

3、作用域隔离:创建独立的变量作用域
图片

// 每个宏调用都有自己的 timeout 变量,不会冲突
I2C_CHECK_EVENT(EVENT_A, 1000);  // 内部的 timeout 变量
I2C_CHECK_EVENT(EVENT_B, 500);   // 新的 timeout 变量,不会冲突

如果没用do{..........}while(0),那么在同一个函数中,会多次定义timeout变量,这在语法上也是错误的。

4、可以复杂的上下文中使用宏定义
例如:在if/else 等控制语句中使用

相关新闻

  • 关于岐金兰“Ai元人文构想”理论体系的阐述
  • Colors
  • USB-MPI/DP/PPI Programmer Cable for Siemens S7 PLCs – Essential for Automotive Repair Car Owners

最新新闻

  • 在Windows上享受原生B站体验:Bili.UWP如何重新定义你的追番方式
  • 2026年厦门名表回收避坑实录:卖表前你要知道的那些没写在招牌上的事 - 奢品小当家
  • 2026年6月正规苏州模温机厂家名单表:高温/防爆/PLC/冷热温控设备定制 - 海棠依旧大
  • 杭州闲置黄金变现去哪?正规回收大盘价上门收金无套路 - 奢品小当家
  • 2026年机器人锂电池厂家推荐:24 年定制锂电池源头厂商选型参考
  • 黑苹果配置革命:OpCore Simplify图形化工具终极指南

日新闻

  • 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 号