some comments and clarification about coding style

 !x vx x==0

It may appear to some that these two forms are equivalent and 
interchangeable.  They may generate the same code, but have 
different meanings to a human reader.  Both have their place.

Suppose we have an object X.

I am not telling you what X is.
It might  be a number, might be a pointer,
might be something that I might think of either way.

It is the kind of object that you might correctly or incorrectly 
see coded either way.

Let's look ..

if (X == 0) {

Read it:
"if X is equal to zero"

if (!X) {

Read it:
"if not X"

Decision on which form to use?
Read it.  Which fits better with what you really mean to say?

Now a specific example.

The object name is "size".

if (size == 0) {
Read it:
"if size is equal to zero"

if (!size) {
Read it:
"if not size"

What does this  mean?
"if there is no size"??
"if we don't know the size"??
"if we don't have a size"??

In this case, the first (size==0) most clearly expresses what I 
believe the meaning of the statement is.


Now another specific example.

The object name is "empty"

if (empty == 0) {
Read it:
"if empty is equal to zero"

if (!empty) {
Read it:
"if not empty"

Here the second (!empty) more clearly expresses the intent, so 
that's what I use.


_______________________________________________
Gnucap-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/gnucap-devel

Reply via email to