C語言宏函數(shù)巧用 do {...} while(0)

你是否見過此類代碼 ??:

乍一看感覺有些多余,為什么要在宏定義中套一個 do {...} while(0)?
答案:使用 do {...} while(0) 構造后的宏定義,可避免大括號、分號等的影響
舉個例子??:
不用 do {...} while(0) 結構進行宏函數(shù)定義將帶來如下影響:

一旦將宏函數(shù)放入?do {...} while(0)?中進行定義顯然就消除了上述影響,又學到一招 ??

綜上,在使用宏函數(shù)定義代碼塊時,可將代碼塊放入 do {...} while(0) 中,可有效減少由于分號或大括號帶來的影響,不妨一試 ??...?
標簽: