Bonjour,
Je dois porter mes application d'une machine linux 32 bits vers une machine 64 bits :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
>machine 32> uname -m
i686
>machine 64> uname -m
x86_64
Je n'ai pas de warning de compilation sur ma machine 32, par contre en 64 bits j'ai des warnings concernant des cast. Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
int caller;
...
XtAddCallback (Button_Close, XmNactivateCallback, close_cb,(XtPointer) caller);
Le pb vient du cast sur la variable caller.
Si je change "int caller" par "long int caller", ce warning disparait, mais engendre de nouveaux warnings sur la variable caller qui n'est plus du même type ... en cascade cela a de nombreuses répercussions.
Le contenu de mes variables n'a pas changé, je sais donc que tout tient dans des int : un int fait 4 octets en 32 bits ou 64 bits, le pb vient du type long int qui est passé de 4 à 8 octets en 64 bits ( ce qui a du aussi modifier la taille du type XtPointer).

Comment puis je supprimer mon Warning initial de manière élégante, sans changer le type de la variable concernée ?
Merci