巧用 do{...} while(0)

你是否见过此类代码 😴:

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

添加了 do{...}while(0) 结构进行宏定义显然就消除了上述影响,又学到一招 😄

综上,在使用宏定义多条语句时,do{...}while(0) 结构不妨一试 🍺...