Jeff finished his post talking about this, but I don’t catch the idea.
So, why do you think this is a bad coding style?
EDIT:
I, as a lot of you, don’t think that it is a bad coding style. But Jeff is far better programmer than me, and his point of view turned on lights on my head to get answering if I was wrong. I was a Delphi developer for some few years and am becoming a C# developer now, and in Delphi it was a common practice.
All caps is the traditional C designation of a preprocessor macro constant. It’s very useful to have these in a different namespace from anything else, since the preprocessor will substitute wherever it finds the name, regardless of things like scope.
A constant in the sense that Jeff was using is, semantically, a variable that can’t be changed. It obeys all scoping principles and everything, and is semantically identical to a non-const variable with the same value.
To put this another way,
is a problem because somebody might use
max_lengthas a variable in a different context, where it would normally be safe, whileis simply a variable declaration. Therefore, there’s an advantage in using
because the convention is that only preprocessor constants are all-caps, so it will not interfere with any other use.