Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84 + RN 4.3; site inset.UUCP Path: utzoo!linus!philabs!cmcl2!seismo!mcvax!ukc!stc!inset!mikeb From: mikeb@inset.UUCP (Mike Banahan) Newsgroups: net.lang.c Subject: Re: Global ptrs init to NULL or 0000? Message-ID: <798@inset.UUCP> Date: Fri, 15-Nov-85 06:24:07 EST Article-I.D.: inset.798 Posted: Fri Nov 15 06:24:07 1985 Date-Received: Sun, 17-Nov-85 07:16:22 EST References: <772@whuxl.UUCP> <139200016@uiucdcsb> Reply-To: mikeb@inset.UUCP (Mike Banahan) Organization: The Instruction Set Ltd., London, UK. Lines: 24 Xpath: stc stc-a In article <139200016@uiucdcsb> kenny@uiucdcsb.CS.UIUC.EDU writes: > >OK, so what does > >static union { > int i; > char *p; > } foo; > >get initialized to on a machine with a non-0 NULL? Incidentally, something >like this appears in a LOT of UN*X programs, and is a MAJOR headache in >attempting to port to a machine with a non-0 NULL. This is an example of an initialised union; explicit initialisation of unions is not permitted in X3J11. Almost quoting the draft standard ``static objects not initialised explicitly are initialised as if every *scalar* member were assigned the integer constant 0 ''. Now a union is not a scalar object. But its members would seem to be. Perhaps herein lies an ambiguity. -- Mike Banahan, Technical Director, The Instruction Set Ltd. mcvax!ukc!inset!mikeb