为何使用do{}while(0)来进行宏定义

最近发现不少代码在进行宏定义的时候使用喜欢使用 #define MACRO_NAME(para) do{macro content}while(0) 的格式,总结了如下几个缘由:   1,空的宏定义避免warning: #define foo() do{}while(0)   2,存在一个独立的block,能够用来进行变量定义,进行比较复杂的实现。   3,若是出如今判断语句事后的宏,这样能够保证
相关文章
相关标签/搜索