Y
Hacker News
new
|
ask
|
show
|
jobs
by
deaddodo
2035 days ago
Semi-experienced C user here, I believe the anonymous block is perfectly adequate here. No idea why they are wrapping it in a single instance do loop, unless they’re unaware of block scoping or I’m unaware of some UB here.
1 comments
btrask
2035 days ago
do {} while(0) is a common idiom for macros in C, because it consumes the trailing semicolon, which a bare {} block doesn't do.
if(x) MACRO(); else something();
expands to
if(x) { ... }; // Error! else something();
link