Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site hocda.UUCP
Path: utzoo!watmath!clyde!burl!hou3c!hocda!grt
From: grt@hocda.UUCP (G.TOMASEVICH)
Newsgroups: net.unix-wizards
Subject: Re: In defense of C
Message-ID: <372@hocda.UUCP>
Date: Tue, 28-Feb-84 13:18:15 EST
Article-I.D.: hocda.372
Posted: Tue Feb 28 13:18:15 1984
Date-Received: Wed, 29-Feb-84 09:14:20 EST
Organization: Bell Labs, Holmdel
Lines: 29

The comments concerning non-automatic reuse of automatic variables with
nonoverlapping domains reminded me that one can reuse register variables.
I don't know if this applies to non-register automatics and would be
interested in finding out.  One can create blocks, as in ALGOL, with curly
braces, in which registers are re-used, according to what I have seen in
PDP assembly translation of C.  Example:

func(a)
{
	register int i, j;
	switch(a) {
	case 0:
	    {
	    register int x;
	    ...
	    break;
	    }
	case 1:
	    {
	    register int y;
	    ...
	    break;
	    }
	}
}

The variables 'x' and 'y' are assigned to the same register.  How much
of this ALGOL type blocking exists in C?  Can someone point me to any
references?  (How big is a pointer to a document? :-) )