robinHoodLe 11/02/2012 à 22:48
je suis en train de me remettre au C pour faire un outil de traitement de fichier dump redis,
sur tout ce que j'ai codé auparavant, j'utilisais du u32 ou u16, u8 etc, avec un define : #define u32 unsigned int
la gp32 à un proc 32b, mes anciens pc/windows aussi, bref jamais de soucis çà allait jusqu’à 4 milliard et des poussières, sur 4o
la je commence à trifouiller mes pointeurs tout ca, et en plein dans ma mémoire, je veut y caller une valeur u32 via 4 octets
je matte l'offset depuis le début de ma zone mémoire, fait un modulo de 4, avance mon pointeur pour être aligné, et la une question me turlupine, je suis en 64b !
bref, combien fait mon int ??
un sizeof me retourne 4, wtf ? pourquoi c'est pas 8 ?!
si cela avais été 8, aurais je du aligner sur 8o ?
je cherche un peu, matte wikipedia et la je vois que le unsigned int >= 16b, monde de merde, aurais je du utiliser des unsigned long depuis tant d'années ?
le int n'est pas le "mot" basique du proc, celui qui va vite ?
que doit je déclarer pour être certain d'avoir 4o et 2o sur toute les plateformes ??