img
@_ö
(03:39)  Bienvenue ! - Inscrivez vous pour poster ! -
@Boo + 49 inconnu(s)

Login :  Mot de passe :      Se souvenir de moi.  Mot de passe perdu ?
/!\:: Cliquez ici pour vous inscrire et poster, créer des sujets ou des forums ! ::/!\
 « Précédent - 2/2 - » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Prog C TI (49r) » Déclarations et consteries
./29 - REPRISE AUTOMATIQUE DU MESSAGE PRECEDENT
10.06.2001 - 32545
04:23  Kevin Kofler - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

Ce n'est pas normal de devoir écrire ce genre de casts, c'est plutôt un indice que tu essaies d'écrire du C comme si c'était de l'assembleur. #hehe#


Mes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
./Publicité AdSense
./30
16.06.2001 - 55176
08:44  squalyl - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

pareil :D

ça raye les yeux ce cast :D


pourquoi pas FilePtr + FileSize - 5?

d'ailleurs ça va foirer pour autre chose que du x86


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./31
18.06.2001 - 20189
10:20  Folco - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

Le truc, c'est que mon FilePtr est le résultat d'un HeapDeref, donc un void*

Puis je dois calculer l'offset du char FilePtre + FileSize - 5 (merci squalyl, j'y ai pensé j'étais déjà couché :D ). Je dois donc caster en char*
Puis il me faut un void pour memcmp, donc re-cast en void*.
Ya un autre moyen ?

Il vut pas de l'opérateur & quand j'écris ça :
(void*)&((char*)FilePtr + FileSize - 5)

D'abord je comprends pas pourquoi, et ensuite je vois pas comment faire autrement qu'éviter ces deux casts...


./32
15.06.2003 - 6775
10:22  GoldenCrystal - Posté : 10-02-2010  @_ö   Signaler un abus Signaler un contenu inapproprié

Normalement y'a pas besoin de cast en void*.
Et tu peux pas obtenir un pointeur sur une valeur :p


Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes
./33
18.06.2001 - 20189
10:29  Folco - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

Eh merde... je m'en doutais.... alors je fais comment pour récupérer ce p**ain de pointeur en plein milieu de mon tableau ? J'ai essayé de fooler le compilo avec diverses écritures hier soir, sans y arriver :/

Mais le cast en char* reste obligatoire, ça se déréférence par un void* ... Bref, ça reste pas splendide...


./34
16.06.2001 - 55176
10:32  squalyl - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

(void*)&((char*)FilePtr + FileSize - 5)

non mais non là :D
qu'est ce qu'il vient foutre au milieu ce &? :D

FilePtr est déja un pointeur vers ce que tu veux, il pointe juste quelques octets avant, et il a éventuellement pas le bon type. Donc a la limite tu pourrais faire

(void*)((char*)FilePtr + FileSize - 5)

mais vu que void* et char* se comportent de la même manière, tu peux carrément virer tous les casts.

a abuser un compilo, autant le faire proprement #trifouet#


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./35
18.06.2001 - 20189
10:35  Folco - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

Ah oui n'importe quoi #triso# Ca m'apprendra à faire un truc sans réfléchir, putain la honte #triso#

Don au final, FilePtr + FileSize - 5 marche très bien. #trioui# Tout ça pour essayer de faire bien à la base, n'importe quoi #mur#


./36
16.06.2001 - 55176
10:37  squalyl - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

comme un peintre en ascii art, des petits & , * et () un peu partout et hop #hehe#


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./37
18.06.2001 - 20189
10:38  Folco - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

N'est-ce pas ? Quel manque de goût ce compilo quand même :D


./38
16.06.2001 - 55176
10:42  squalyl - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié



For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./39
./40
16.06.2001 - 55176
12:28  squalyl - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

je savais que ça te plairait #hehe#


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./41
18.06.2001 - 20189
12:57  Folco - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

Tu m'étonnes :D

Tiens, j'm'a fait baysay :
*((char*)FilePtr + FileSize + 1)

!=
*(char*)FilePtr + FileSize + 1

%)


./42
16.06.2001 - 55176
13:00  squalyl - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

certes %)


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./43
15.06.2003 - 6775
13:02  GoldenCrystal - Posté : 10-02-2010  @_ö   Signaler un abus Signaler un contenu inapproprié

C'est un peu évident quand même %)
Faut bien réfléchir à la priorité des opérateurs quand tu codes ^^
Le cast heu déréférencement c'est un "opérateur" avec une des priorités les plus élevées, donc évidemment, ça passe avant le + et beaucoup d'autres :)


Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes
./44
18.06.2001 - 20189
13:08  Folco - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

Oui, je m'en suis rendu compte à la relecture, donc j'ai pas galéré dessus. bizarement ça m'a sauté aux yeux, alors que j'y ai même pas pensé quand j'ai écrit...


./45
27.04.2006 - 30166
17:09  Zerosquare - Posté : 10-02-2010  @_ö   Signaler un abus Signaler un contenu inapproprié

squalyl (./34) :
vu que void* et char* se comportent de la même manière
Sûr ? #doute#


Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
./46
16.06.2001 - 55176
17:34  squalyl - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

bah teste mais tu verrais quoi comme différence a part que tu peux pas deref un void*?

ma remarque vaut surtout que x+3 pointe 3 octets après x , que x soit un char* ou un void*.


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./47
27.04.2006 - 30166
17:38  Zerosquare - Posté : 10-02-2010  @_ö   Signaler un abus Signaler un contenu inapproprié

Justement, je sais que ça semble marcher en pratique, mais je ne sais pas si c'est garanti par le standard C.

Du point de vue logique c'est un peu embêtant : si tu fais pointeur += 3, le pointeur est censé avancer de (3 * taille du type de pointeur) octets. Or void ne représente justement aucun type en particulier...


Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
./48
16.06.2001 - 55176
17:40  squalyl - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

j'ai vraiment la flemme de ressortir le doc ISO C89 ou 99 (chaipa) mais il me semble qu'il mentionne que sizeof(void) = 1 quand on s'en sert comme pointeur.

en cherchant vite ça semblerait être une extension gcc... merdalors.

bon, m'en fous, j'utilise que gcc , mais c'est bon a savoir.


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./49
28.10.2001 - 7330
19:25  Lionel Debroux - Posté : 10-02-2010  M   Signaler un abus Signaler un contenu inapproprié

C'est une extension GCC, en effet.
L'utiliser ou pas est une question de goût - personnellement, je n'aime pas, et c'est une introduction gratuite d'importabilité bien connue entre compilos.


Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
./Publicité AdSense
 « Précédent - 2/2 - » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Prog C TI (49r) » Déclarations et consteries

./Poster un nouveau message. - Ouvrir dans une nouvelle fenêtre
Login : Mot de passe :

url - image - media  
spoiler - pre - fixed
quote - box - hr
poll - code





Smileys
Smileys perso
Pièce jointe
     Flood control (?) :    
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

» yN ©1624 - Aide / Charte / Crédits
30ms | Statistiques