Changes to Answers to Frequently Asked Questions (FAQ) on comp.lang.c

Steve Summit scs at adam.mit.edu
Tue Apr 2 18:32:33 AEST 1991


Coming up next is the real comp.lang.c FAQ list.  (Accept no
substitutes!)  There are no major changes this month; a brief
diff listing follows.  (As always, these diffs have been edited
for readability, and are not suitable for the patch program.)

==========
< [Last modified February 28, 1991 by scs.]
---
> [Last modified April 2, 1991 by scs.]
==========
<       An identifier of type array-of-T which appears in an
        expression decays (with three exceptions) into a pointer to
        its first element; the type of the resultant pointer is
        pointer-to-T.
---
>       An lvalue of type array-of-T which appears in an expression
==========
       as it applies to arrays and pointers.  In an expression of the form
<      a[i], the array name "a" decays into a pointer, following the rule
       above, and is then subscripted exactly as would be a pointer
       variable in the expression p[i].  In either case, the expression
---
>      a[i], the array reference "a" decays into a pointer, following the
==========
<      Since strcat returns its first argument, the s3 variable is
<      superfluous.
---
>      Since strcat returns the value of its first argument, the s3
>      variable is superfluous.
==========
  A:   In general, when using pointers you _always_ have to consider
       memory allocation, at least to make sure that the compiler is doing
<      it for you.
---
>      it for you.  If a library routine's documentation does not
>      explicitly mention allocation, it is usually the caller's problem.
==========
       it is not widely portable.  Passing an initially-null pointer to
<      realloc can make it easy to write a self-starting incremental
       allocation algorithm.
---
>      realloc can make it easier to write a self-starting incremental
==========
       structures), use short.  Otherwise, use int.  If well-defined
<      overflow characteristics are important and/or sign is not, use
<      unsigned.
---
>      overflow characteristics are important and/or negative values are
>      not, use unsigned.  (But beware mixtures of signed and unsigned.)
==========
<      In general, don't try to use char or unsigned char as a "tiny" int
<      type; doing so is often more trouble than it's worth.
---
>      Although char or unsigned char can be used as a "tiny" int type;
>      doing so is often more trouble than it's worth.
==========
       may also generate nonfatal warnings when enums and ints are
       indiscriminately mixed, since doing so can still be considered bad
       style even though it is not strictly illegal).  A disadvantage is
<      that the programmer has little control over the size.
---
>      that the programmer has little control over the size (or over those
>      nonfatal warnings).
==========
<      calculator.  A good compiler will generate identical code for i++,
<      i += 1, and i = i + 1.  The reasons for using i++ or i += 1 over
       i = i + 1 have to do with style, not efficiency.
---
>      calculator.  A good compiler will generate identical code for ++i,
>      i += 1, and i = i + 1.  The reasons for using ++i or i += 1 over
==========
  Acknowledgements

> Thanks to Sudheer Apte, Dan Bernstein, Joe Buehler, Raymond Chen,
> Christopher Calabrese, James Davies, Norm Diamond, Ray Dunn, Stephen
> M. Dunn, Bjorn Engsig, Ron Guilmette, Doug Gwyn, Tony Hansen, Joe
> Harrington, Guy Harris, Blair Houghton, Kirk Johnson, Andrew Koenig,
> John Lauro, Christopher Lott, Tim McDaniel, Evan Manning, Mark Moraes,
> Francois Pinard, randall at virginia, Pat Rankin, Rich Salz, Chip
> Salzenberg, Paul Sand, Doug Schmidt, Patricia Shanahan, Peter da Silva,
> Joshua Simons, Henry Spencer, Erik Talvola, Clarke Thatcher, Chris
> Torek, Ed Vielmetti, Larry Virden, Freek Wiedijk, and Dave Wolverton,
> who have contributed, directly or indirectly, to this article.

                                             Steve Summit
                                             scs at adam.mit.edu
                                             scs%adam.mit.edu at mit.edu
                                             mit-eddie!adam!scs



More information about the Comp.lang.c mailing list