Shouldn't ANSI have provided nonvolatile instead of volatile?

Michael Meissner meissner at osf.org
Wed Feb 14 09:40:01 AEST 1990


In article <680016 at hpmwjaa.HP.COM> jeffa at hpmwtd.HP.COM (Jeff Aguilera) writes:

| >                                 The few things that *were* X3J11 inventions
| > are among the worst botches in the standard.
| 
| I couldn't agree more.  ANSI C should codify existing practice, rather than
| introduce a new language with subtly different semantics than K&R.

But K&R was already out of sync with current practice:

   1)	K&R demands that globals obey strict REF/DEF semantics (you
	can have only 1 definition of a global variable, everything
	else must be an 'extern' reference);

   2)	K&R demands that the preprocessor not substitute macro
	arguments into string literals and character constants;

   3)	The grammar in appendix A of K&R-I is incorrect with regard to
	functions returning pointers to functions, and where the
	arguments go;

   4)	K&R does not have the extensions (structure copy/args/return,
	possibly enumerations) that found their way into the V7
	compilers, and were considered existing practice by the time
	ANSI started;

   5)	The Richie PDP-11 compiler and the Johnson PCC (portable C
	compiler) have different semantics with regard to incomplete
	nesting of braces in initializers;

(and so on)

I would also imagine, that more people use Turbo C nowadays than ever
used PCC, so what is the current existing practice if it's a choice
between these two?

| And they should not have mucked with so many include files.  
| 
| Thank God they backed down on noalias!  But why did they keep trigraphs?

Because there was not enough votes.
--
Michael Meissner	email: meissner at osf.org		phone: 617-621-8861
Open Software Foundation, 11 Cambridge Center, Cambridge, MA

Catproof is an oxymoron, Childproof is nearly so



More information about the Comp.lang.c mailing list