#define XXX do { } while(0) 宏定义结构的好处

1. 避免多语句宏的问题

// 有问题的情况
#define MACRO a = 1; b = 2;
if (condition)
    MACRO; // a = 1; b = 2;;     b = 2不受条件限制
else
    do_something_else();

#define MACRO do { a = 1; b = 2; } while(0)
if (condition)
    MACRO; // do { a = 1; b = 2; } while(0);
else
    do_something_else();

2.防止宏重定义的问题

// 没问题
#define MACRO do { a = 1; b = 2; } while(0)
#define _MACRO MACRO //宏重定义

3. 确保语法正确,主要是最后的分号问题

posted @   变秃了也就变强了  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示