C Review

Clayton Cramer cramer at kontron.UUCP
Fri Jan 16 11:58:45 AEST 1987


> I am currently finishing up a new text book on C with a colleague
> of mine and we just received the last of several technical reviews.
> This particular reviewer makes some statements that we find hard
> to accept. However, we're just two people, so we decided to get
> some opinions from other C programmers. Below is a list of some
> his statements. Is this guy for real? Your comments would be
> greatly appreciated. Incidentally, the text is not an intro
> text, it assumes the reader has finished a course in Pascal.
> 
> "... 95% of all C programmers couldn't give you a good
> explanation of the term lvalue..."

I know *I* couldn't -- all the more reason it belongs in a text on C.

> "... Switch/case could be classified as rarely used and should be
> kept till later.

It sounds like your reviewer is a frustrated BASIC program who learned
C and hasn't learned anything since.

> "... very few C programmers know much about sizeof..."

Nonsense.  Same remarks as above.

> "... 99%  of  all  professional C  programmers  have no idea
> what typedef is all about, couldn't care less and probably
> won't ever need it."

COMPLETE NONSENSE -- typedefs and enumerated types are essential to
writing maintainable programs in C.

> "... 99%  of  all  professional C  programmers  have no idea
> what the comma operator is all about, couldn't care less and
> probably won't ever need it."

Your reviewer has clearly never written a loop with two independently
changing loop variable.  Is this guy for real?

> "... Leave the comma operator altogether. An intro book is no
> place for obscure and unmaintainable tricks..."

Comma isn't unmaintainable -- no is it obscure.  Someone should probably
explain to your reviewer that <stmt> , <stmt> is roughly equivalent to

   {
   <stmt>;
   <stmt>;
   }

in places like a for statment.  (BTW: can you say 

  for ({I = 0; J = 0}; I < 20; I++, J--)?
  
> "... Pointers to functions ... few C programmers understand
> them or would ever need them..."

It's possible to use pointers to functions without understanding them,
but you can't write anything but a trivial program without needing pointers
to function.

> "... a C programmer never needs to know what a byte is..."

C != Pascal.  I'm sure it's possible to debug a C program without a 
knowledge of machine architecture, but I shudder to think of it.


Let me recommend you ignore your reviewer's remarks.

Clayton E. Cramer



More information about the Comp.lang.c mailing list