Newsgroups: comp.os.msdos.djgpp From: design AT netcom DOT com (Chris Waters) Subject: Re: Pointers Message-ID: Organization: Design and Delivery References: <1080C993B2F AT fs2 DOT mt DOT umist DOT ac DOT uk> Date: Tue, 15 Oct 1996 10:53:49 GMT Lines: 20 Sender: design AT netcom12 DOT netcom DOT com To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp In article <1080C993B2F AT fs2 DOT mt DOT umist DOT ac DOT uk>, A.Appleyard wrote: > design AT netcom DOT com (Chris Waters) wrote:- >> [It is] untrue [that 16-bit compilers will use 16-bit pointers [only]]; most >> 16-bit compilers for the x86 offer a choice of 16-bit pointers (small model) >> or 24-bit pointers (stored in 32-bits as segment:offset; large model). > I suspect that, in C / C++ / etc compilers that have near and far pointers, >near pointers are 16 bits and far pointers are 32 bits. Far pointers are *stored* in 32 bits (and indeed, I said that). But they are only 24 bit pointers, with the bits stored redundantly, so that (char *)0x00040080L points to the same address as (char *)0x00000480L. This is a far cry from 32 bit pointers as found in, e.g. djgpp (hey, something relevant to the newsgroup). :) Followups (unless more relevant to djgpp) should probably go to some other newsgroup.