File:  [gnuless NCC] / kandr / DIALECT
Revision (vendor branch): download - view: text, annotated - select for diffs
Sun Aug 11 04:54:56 2019 UTC (4 months ago) by root
Branches: gnuless, MAIN
CVS tags: ncc010319, HEAD
K&R NCC 01-03-2019

The compiler accepts "classic" C as described in K&R (1978), with a few
extensions. Most of these were common extensions that made it into C89.

* 'unsigned' is extended to all integer types.

K&R only mentions 'unsigned int'. NCC extends this qualifier to all 
integral types, including 'char', which is signed by default.

* Separate member namespaces.

'struct' and 'union' types each enclose a unique namespace, so members of
different aggregate types need not have different names. 

* Separate tag namespaces.

'struct foo' and 'union foo' refer to different types, even in the same scope.

* Arbitrarily-typed bitfields.

The compiler allows bit fields to have any integral type: the size of the type 
limits the number of bits that are permitted and sets the alignment requirement 
of the word that contains field. Also, the signedness of the field is honored.

Charles Youse <>
January 3, 2019