Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!rutgers!uwm.edu!gem.mps.ohio-state.edu!ginosko!uunet!mcsun!unido!tub!uwbln!ckl From: ckl@uwbln.UUCP (Christoph Kuenkel) Newsgroups: comp.lang.c Subject: Re: sizeof a struc field Message-ID: <1890@uwbull.uwbln.UUCP> Date: 16 Oct 89 20:19:44 GMT References: <7710@microsoft.UUCP> <11086@smoke.BRL.MIL> <131@dtoa3.dt.navy.mil> <11280@smoke.BRL.MIL> Distribution: comp Organization: UniWare GmbH, Berlin Lines: 29 In article <11280@smoke.BRL.MIL>, gwyn@smoke.BRL.MIL (Doug Gwyn) writes: > That's not what I've been saying. Garbage constructs have no type. > ((thing*)0)->member is a garbage construct. It has no type. > > In case you don't know what I mean by "garbage construct", it is > a sequence of C source characters for which the Standard assigns > no valid meaning. like ``<>??|.'' ? hm, perhaps you can cite a paragraph in the standard that says, subtracting 5 from a long int has no meaning assigned. should i scan the pANS for something like that? this discussion gets somewhat boring as long as the one side argues that ``the standard says so''. it should better be explained why it says so and what it says, how to solve the problem in question (yes, there was a real problem!). for me, ((thing *)0) sounds quite reasonable. i agree that there is no meaningfull evaluation. i never saw a compiler that claimed this construct to be ``syntactically wrong''. i think that it should be possible to ``assign'' meaning to that construct in an unambigous way. so *why* does the standard define it to be garbage? -- # include Christoph Kuenkel/UniWare GmbH Kantstr. 152, 1000 Berlin 12, West Germany ck@tub.BITNET ckl@uwbln {unido,tmpmbx,tub}!uwbln!ckl