forumti.gif
@_ö
(20:20)  Bienvenue ! - Inscrivez vous pour poster ! -
Boo, OBO, BX19GTI1988, OURANE19, PpHd, cannet, Barbo, Antoine76, V1, Rajah, Fei, Gilou40560, 56 inconnu(s), 44 bot(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 - 33210
04:23  Kevin Kofler - Posté : 10-02-2010  M
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#
avatarMes 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 - 61455
08:44  squalyl - Posté : 10-02-2010  M
pareil grin

ça raye les yeux ce cast grin


pourquoi pas FilePtr + FileSize - 5?

d'ailleurs ça va foirer pour autre chose que du x86
./31
18.06.2001 - 27317
10:20  Folco - Posté : 10-02-2010  M
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é grin). 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...
avatarFolco'sandbox : 2014-11-26
<<< Kernel Extremist©®™ >>> WIP : r14 - 2014-12-02

- xdef directive now updates the cursor
- include directive remove its file from the fileslist when parsed
- added dc directive, binary size verification, relocation table handling
./32
15.06.2003 - 7811
10:22  GoldenCrystal - Posté : 10-02-2010  @_ö
Normalement y'a pas besoin de cast en void*.
Et tu peux pas obtenir un pointeur sur une valeur tongue
avatarLe 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 - 27317
10:29  Folco - Posté : 10-02-2010  M
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...
avatarFolco'sandbox : 2014-11-26
<<< Kernel Extremist©®™ >>> WIP : r14 - 2014-12-02

- xdef directive now updates the cursor
- include directive remove its file from the fileslist when parsed
- added dc directive, binary size verification, relocation table handling
./34
16.06.2001 - 61455
10:32  squalyl - Posté : 10-02-2010  M
(void*)&((char*)FilePtr + FileSize - 5)

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

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#
./35
18.06.2001 - 27317
10:35  Folco - Posté : 10-02-2010  M
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#
avatarFolco'sandbox : 2014-11-26
<<< Kernel Extremist©®™ >>> WIP : r14 - 2014-12-02

- xdef directive now updates the cursor
- include directive remove its file from the fileslist when parsed
- added dc directive, binary size verification, relocation table handling
./36
16.06.2001 - 61455
10:37  squalyl - Posté : 10-02-2010  M
comme un peintre en ascii art, des petits & , * et () un peu partout et hop #hehe#
./37
18.06.2001 - 27317
10:38  Folco - Posté : 10-02-2010  M
N'est-ce pas ? Quel manque de goût ce compilo quand même grin
avatarFolco'sandbox : 2014-11-26
<<< Kernel Extremist©®™ >>> WIP : r14 - 2014-12-02

- xdef directive now updates the cursor
- include directive remove its file from the fileslist when parsed
- added dc directive, binary size verification, relocation table handling
./38
./39
18.06.2001 - 27317
11:03  Folco - Posté : 10-02-2010  M
avatarFolco'sandbox : 2014-11-26
<<< Kernel Extremist©®™ >>> WIP : r14 - 2014-12-02

- xdef directive now updates the cursor
- include directive remove its file from the fileslist when parsed
- added dc directive, binary size verification, relocation table handling
./40
16.06.2001 - 61455
12:28  squalyl - Posté : 10-02-2010  M
je savais que ça te plairait #hehe#
./41
18.06.2001 - 27317
12:57  Folco - Posté : 10-02-2010  M
Tu m'étonnes grin

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

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

cheeky
avatarFolco'sandbox : 2014-11-26
<<< Kernel Extremist©®™ >>> WIP : r14 - 2014-12-02

- xdef directive now updates the cursor
- include directive remove its file from the fileslist when parsed
- added dc directive, binary size verification, relocation table handling
./42
16.06.2001 - 61455
13:00  squalyl - Posté : 10-02-2010  M
certes cheeky
./43
15.06.2003 - 7811
13:02  GoldenCrystal - Posté : 10-02-2010  @_ö
C'est un peu évident quand même cheeky
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 smile
avatarLe 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 - 27317
13:08  Folco - Posté : 10-02-2010  M
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...
avatarFolco'sandbox : 2014-11-26
<<< Kernel Extremist©®™ >>> WIP : r14 - 2014-12-02

- xdef directive now updates the cursor
- include directive remove its file from the fileslist when parsed
- added dc directive, binary size verification, relocation table handling
./45
27.04.2006 - 40044
17:09  @Zerosquare - Posté : 10-02-2010  @_ö
squalyl (./34) :
vu que void* et char* se comportent de la même manière
Sûr ? #doute#
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Sur Atari tout le hardware tu trouvera, le driver toi même tu le codera » — GT Turbo
./46
16.06.2001 - 61455
17:34  squalyl - Posté : 10-02-2010  M
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*.
./47
27.04.2006 - 40044
17:38  @Zerosquare - Posté : 10-02-2010  @_ö
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...
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Sur Atari tout le hardware tu trouvera, le driver toi même tu le codera » — GT Turbo
./48
16.06.2001 - 61455
17:40  squalyl - Posté : 10-02-2010  M
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.
./49
28.10.2001 - 7508
19:25  Lionel Debroux - Posté : 10-02-2010  M
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.
avatarMembre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.
./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
67ms | Statistiques