PureBasic

Forums PureBasic
Nous sommes le Mer 23/Oct/2019 19:31

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 
Auteur Message
 Sujet du message: Différents types de pointeurs !? [Résolu]
MessagePosté: Dim 23/Déc/2018 18:54 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 10/Mar/2013 22:22
Messages: 49
Localisation: France
Bonjour,
En étudiant la doc de Microsoft sur les différents types de variables je suis tombé sur la définition C suivante :
Citation:
typedef BOOL far *LPBOOL;

Ne sachant pas à quoi correspondait le "far", je me suis renseigné un peu. J'ai cru comprendre que cela venait d'un héritage des premier systèmes de pagination sur les processeur 16bits. Ce serait l'un des deux "type" de pointeur existants alors. Le type "far" correspondrait à un pointeur "absolu". Le type "near" correspondrait à un pointeur "relatif" à la page actuelle (comme l'index dans un tableau).

En revanche je n'ai pas réussi, avec mon niveau d'anglais, à trouver une réponse aux deux questions suivantes :
- Qu'en est-il maintenant de ces deux "types" de pointeurs ?
- Comment cela se tradui(sai)t en purebasic ?

Avant que l'on me fasse les remarques :
- Je n'ai volontairement PAS ouvert ce sujet dans le sous forum dédié à Windows car mes questions portent sur un élément du C non spécifique à Windows.
- Ma question ne porte pas sur l'équivalent PureBasic du *LPBOOL car j'ai déjà des éléments de réponse ici : viewtopic.php?t=17074


Dernière édition par Naheulf le Lun 24/Déc/2018 0:18, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Différents types de pointeurs !?
MessagePosté: Dim 23/Déc/2018 23:39 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 11/Fév/2005 17:34
Messages: 4224
Localisation: Arras, France
La réponse est très simple. Ces deux types de pointeurs sont des reliques d'un passé fort lointain et qu'il vaut mieux oublier. Quant à PB, il est né sur Amiga où l'adressage était déjà en 32 bits en 1985... Sur PC, PB n'a jamais été en 16 bits, il n'a connu que de véritables OS 32 et 64 bits, et il n'a utilisé que des assembleurs 32/64 bits qui s'occupent très bien de tout ça. Bref, pas de far pour le dessert.
Maintenant, ça ne veut pas dire que l'adressage relatif est mort, un octet est important et un programme ré-entrant a du charme ;)

PS: en C, le far et le near peuvent être différents suivant les compilateurs (le far pouvant être en 48 bits même sur un cpu 32 bits). À l'heure actuelle, à ce que je sache, les CPU ne peuvent adresser que 48 bits de mémoire.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Différents types de pointeurs !?
MessagePosté: Lun 24/Déc/2018 0:18 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 10/Mar/2013 22:22
Messages: 49
Localisation: France
Merci djes pour ta réponse claire.

Du coup les 3 lignes suivantes sont équivalentes :
Code:
far *machin
near *machin
*machin


PS : Tant mieux, je n'en veut pas non plus pour l'entrée. Trop peur de faire une intoxication informatique à cause de reliefs périmés. :mrgreen:


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Différents types de pointeurs !? [Résolu]
MessagePosté: Lun 24/Déc/2018 1:14 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3507
(pour compléter) Ils y sont toujours les deux types de pointeurs et on y voit que du feu, tellement la taille des registres d'adressage est grande : 64 bits donc un accès théorique à 128 millions de teraoctets.

Le pointeur far provoque des vérifications supplémentaires de protection matérielle.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Google Adsense [Bot] et 4 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye