Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!pt.cs.cmu.edu!b.gp.cs.cmu.edu!Ralf.Brown@B.GP.CS.CMU.EDU From: Ralf.Brown@B.GP.CS.CMU.EDU Newsgroups: comp.sys.ibm.pc Subject: Re: Looking for a decent C compiler Message-ID: <24ab9aee@ralf> Date: 30 Jun 89 16:08:14 GMT Sender: ralf@b.gp.cs.cmu.edu Organization: Carnegie Mellon University School of Computer Science Lines: 20 In-Reply-To: <166@bms-at.UUCP> In article <166@bms-at.UUCP>, stuart@bms-at.UUCP (Stuart Gathman) writes: }In article <7272@cg-atla.UUCP>, fredex@cg-atla.UUCP (Fred Smith) writes: }This is almost true. You can allocate arrays > 64K with huge model/keyword. }HOWEVER, each array element must still be < 64K. In fact, each element must }be of a size evenly divisible into 65536! (Some compilers may pad for this }automatically. MSC 3.0 does not.) The reason is that references to a fund- }amental type cannot cross a segment boundary. Yes, the compiler could This is not necessary, since all huge pointer are normalized after every pointer operation, resulting in an offset that is never greater than 15. Thus, the array elements can be any size up to 65520 bytes, as it is impossible for an element to cross a HUGE pointer's segment limit unless the item is at least 65521 bytes. -- UUCP: {ucbvax,harvard}!cs.cmu.edu!ralf -=-=-=- Voice: (412) 268-3053 (school) ARPA: ralf@cs.cmu.edu BIT: ralf%cs.cmu.edu@CMUCCVMA FIDO: Ralf Brown 1:129/46 Disclaimer? I claimed something? "When things start going your way, it's usually because you stopped going the wrong way down a one-way street."