On 04/25/2013 10:48 PM, Chris Angelico wrote:

    <SNIP>

Also, this protection helps only when the "constant"
is actually something the compiler knows is a constant - it doesn't
work in a search function, for instance:

char *strchr(char *string, char findme) {
     while (*string) {
         if (*string==findme) return string;
         ++string;
     }
     return 0;
}

Sure, but if I were coding in C again, I'd have made that function signature

char *strchr(char *string, const char findme) {
   or maybe
char *strchr(const char *string, const char findme) {


If you switch the order of operands in that, the compiler won't help
you.

Yes, it would.

Plus it "reads" wrong. So the convention is still
variable==constant.

In my case, after having it drilled in that you're "supposed" to put the constant first, I realized that I never had any problem with using =, because as soon as I questioned the order, I just double-checked that I was using ==. At that point, there was no longer any benefit to making the order backwards.


--
DaveA
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to