delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/10/15/07:47:41

Newsgroups: comp.os.msdos.djgpp
From: design AT netcom DOT com (Chris Waters)
Subject: Re: Pointers
Message-ID: <designDzBCxp.M7x@netcom.com>
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 <A DOT APPLEYARD AT fs2 DOT mt DOT umist DOT ac DOT uk> 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.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019