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 :
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);
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...)
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" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
chunkSize >= 0 (-1308622848)
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...

Qu'en pensez-vous ?