3 ms·
do { ... } while (0) makes your macro behave like a statement (i.e. the semicolon is mandatory)
by enqk 15y ago
do { ... } while (0) makes your macro behave like a statement (i.e. the semicolon is mandatory)
- rcfox 15y ago({ ... }) does this too. (Is this GCC-specific?)
- mansr 15y agoThat is a gcc extension. The construct as a whole has the value of the last statement executed within. Usually an inline function is preferable since it achieves the same thing using only standard syntax.
- silentbicycle 15y agoYes. I don't include the trailing semicolon in macro definitions, because I expect the macro to be followed by them: MACRO(foo);