Bonjour à tous,
Voici un petit problème qui m'arrive...
Tout d'abord le contexte : jusque là, je travaillais sous MacOsX avec un G5. Mon application fonctionnait parfaitement (Du moins, sans bug). Pour certaines raisons, indépendantes de ma volonté, je me retrouve, toujours sous MacOsX, mais avec un iMac et un processeur Intel...
Voilà un extrait de code :
En gros, je parcours un fichier et lit un entier que je place dans "chunkSize". ("file" est de type FILE* et est correctement ouvert, etc...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 guint32 chunkSize; int n; n += fread(&chunkSize, 4, 1, file); if (chunkSize < 0) printf ("chunkSize < 0 (%d)\n", chunkSize); else printf("chunkSize >= 0 (%d)\n", chunkSize);
guint32 est un type de la bibliothèque "GLib" (cf. http://developer.gnome.org/doc/API/2...s.html#guint32)
Sur ma première machine (G5) tout allait parfaitement bien dans le meilleur des mondes, cependant, sur le Mac-Intel voilà ce que me retourne le "printf" :
Bon, j'ai tout de suite penser à un problème big/little endian (et je pense toujours que c'est lié à cela)... Cependant, je suis perplexe sur l'affichage du printf : Le programme détecte que chunkSize est positif, cependant à l'affichage il est négatif...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 chunkSize >= 0 (-1308622848)
Qu'en pensez-vous ?
Partager