In C macros, should one prefer do { … } while(0,0) over do { … } while(0)?
问题 A customer recently performed static analysis of my employer's C codebase and gave us the results. Among useful patches was the request to change the famous do { ... } while(0) macro to do { ... } while(0,0) . I understand what their patch is doing (using the sequence operator to return evaluate to the value of the second "0", so the effect is the same) but it's not clear why they'd favor the second form over the first form. Is there a legitimate reason why one should prefer the second form