4 ms·
I'd argue you regardless you should write what you mean If you mean "increment g" then write "++g" If you mean "temp = g; increment g; return g" then write "g
by greggman 9y ago
I'd argue you regardless you should write what you mean
If you mean "increment g" then write "++g"
If you mean "temp = g; increment g; return g" then write "g++"
It doesn't really matter that the compiler may optimize out the "temp". If you're writing "g++" you're indicating you want the value before it's been incremented.
- YSFEJ4SWJUVU6 9y agoIf you're not using the value you can't “want it”. There is only one sane way to interpret the following two expressions statements (in C), and it is that they are equal. g++; ++g;
- gambiting 9y agoWell, no, you can do stupid code like: if(g++) { //do something } Which obviously will do something if g was non-zero before incrementing it by one. It's a really poor way of writing code, but I have seen it done.
- YSFEJ4SWJUVU6 9y agoFirst of all, I don't agree that code like that is stupid regardless of circumstances. Any programmer worth his salt understands that condition perfectly well without having to think about it. However, it's an altogether different situation to the one I wrote about, given that the value of the incrementing expression is specifically used in that case.
- chrisseaton 9y agoThey said 'if you're not using the value', and you've presented an example where they are using the value, so you're criticism doesn't apply in the case they're talking about.