From: utzoo!decvax!harpo!eagle!mhuxt!mhuxa!mhb5c!mjs
Newsgroups: net.unix-wizards
Title: C Language Specification
Article-I.D.: mhb5c.1009
Posted: Wed Sep  8 20:52:06 1982
Received: Thu Sep  9 05:17:07 1982
References: sri-unix.3010

If you wish to do large quantities of single-precision floating point
calculations, then I suspect that FORTRAN is the language for you!  If
you wish to use C, however, the specification of what you cite as a
conversion inefficiency follows (quoted from `The C Programming Language'
by Kernighan & Ritchie, bottom of page 184, section 6.6 of the appendix):

	A great many operators cause conversions and yield result types in
a similar way.  This pattern will be called the ``usual arithmetic
conversions.''

	First, any operators of type `char' or `short' are converted to
	`int,' and any of type `float' are converted to `double.'
	Then, if either operand is `double,' the other is converted to
	`double,' and that is the type of the result.

The passage goes on to detail the conversions for the integral data types.
Please note that that appendix DEFINES the C language.  What you suggest
in terms of `fixing the compiler' amount to changing the semantics of the
language.

	Martin J. Shannon, Jr.
	BTL MH (201) 582-3199