C语言宏函数巧用 do {...} while(0)

你是否见过此类代码 😴:

乍一看感觉有些多余,为什么要在宏定义中套一个 do {...} while(0)?
答案:使用 do {...} while(0) 构造后的宏定义,可避免大括号、分号等的影响
举个例子👏:
不用 do {...} while(0) 结构进行宏函数定义将带来如下影响:

一旦将宏函数放入 do {...} while(0) 中进行定义显然就消除了上述影响,又学到一招 😄

综上,在使用宏函数定义代码块时,可将代码块放入 do {...} while(0) 中,可有效减少由于分号或大括号带来的影响,不妨一试 🍺...