[résolu] #PB_Quad = 4

Archive.
ker2x
Messages : 61
Inscription : dim. 11/mai/2008 7:27

[résolu] #PB_Quad = 4

Message par ker2x »

D'apres la doc un quad est sur 4 bytes sur x64.

J'ai PureBasic 4.40 (x64)
Avec le code suivant :

Code : Tout sélectionner

*MExposure = AllocateMemory(#screenSize2 * #PB_Quad)
Le debuger m'indique que #PB_Quad = 4
Un bug ou j'ai rien compris ?
Dernière modification par ker2x le ven. 01/janv./2010 16:53, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: #PB_Quad = 4

Message par Backup »

et en utilisant des variables a la place de constante ?

Code : Tout sélectionner

screenSize2.q=1024*768 ; declaration en quad (.q)


*MExposure = AllocateMemory(screenSize2 * #PB_Quad)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: #PB_Quad = 4

Message par Anonyme2 »

Il ne faut pas confondre une constante comme #PB_Quad qui est utilisée par PB dans des fonctions et la taille des données (word, long, quad etc)

Pour trouver la taille d'un quad, il faut utiliser la fonction PB SizeOf() et pour le quad, le paramètre est Quad qui est une structure prédéfinie par PB. Idem pour les autres types, SizeOf(byte), SizeOf(word), SizeOf(long) etc.

utilise le code suivant pour afficher la taille ocupée par la variable de type quad.
debug SizeOf(Quad)

De même on peut mettre en paramètre une variable déclarée

global As.q
Debug SizeOf(As)



Voila ce que dit la doc sur sizeof()
Syntax
SizeOf(Type)

Description

La commande SizeOf permet de renvoyer la taille en octets que prendra une structure complexe (ne fonctionne pas avec les types de base tels que les 'long', les 'word' etc.), une interface ou même une variable. C'est très utile dans de nombreux cas, notamment lors de l'utilisation des commandes API.
ker2x
Messages : 61
Inscription : dim. 11/mai/2008 7:27

Re: #PB_Quad = 4

Message par ker2x »

Merci pour les infos.
Je ne trouvai pas les infos dans la doc.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: [résolu] #PB_Quad = 4

Message par Anonyme2 »

Je pense que la doc est légèrement fausse car ça marche avec les type simple comme word, long.
Répondre