11 ms·
*foo++ (and --) is an extremely common C idiom. I'd argue it's clearer than the separated version.
by wiml 2mo ago
*foo++ (and --) is an extremely common C idiom. I'd argue it's clearer than the separated version.
- 14113 2mo agoAs I experienced while trying to write out an AST for this pattern, the operator precedence makes it harder to read. I would at least prefer that it's written as *(foo++).
- adrian_b 2mo agoThere are some badly chosen operator priorities in the C programming language that can make expressions without parentheses harder to read (e.g. for the bitwise operators), but the fact that postfix operators are executed before prefix operators is a very simple rule that is hard to forget, so for me adding such superfluous parentheses makes the expression harder to read, not easier to read.
- 14113 2mo agoTo me, the parentheses make it significantly easier to read. They make it clear which operator directly acts on the variable, and create a mental meta-object to which the next operator acts. I accept that if you're extremely used to writing this style of C code, it might be something that you're used to, and understand implicitly. As a C++ engineer that infrequently comes across this precise pattern, having the precedence made explicit makes it much easier to understand.