typedef unsigned long long IMSI;Quel spécificateur de format utiliser pour imprimer "unsigned long long" en C avec des valeurs tronquées sur la console?
IMSI imsi; Lorsque j'essaye d'imprimer ceci en utilisant% llu comme spécificateur de format, je reçois une valeur sans rapport.
Que puis-je faire pour résoudre ce problème?
J'utilise aussi gcc 4.3.3 Je pense qu'il y a peut-être un problème avec le mécanisme de traçage que j'ai utilisé, mais j'obtiens le même problème même en utilisant printf.
imsiAsInt = 9379666465 ;
brrm_trace(ubm_TRACE_BRRM_UECTRL,ubm_TRACE_INFO,
UEC_IUH_ACCACHE_ENTRY_FOUND,imsiAsInt, status.ueRegCause,
mCacheEntries.size());
printf("printf:UEC_IUH_ACCACHE_ENTRY_FOUND=%llu, sizeof(IMSI)=%d\n",
imsiAsInt,sizeof(IMSI));
Cela donne suite à la sortie UEC_IUH_ACCACHE_ENTRY_FOUND Imsi = 789731873, UeRegCause = 1, CurSize = 5 -> La trace printf: UEC_IUH_ACCACHE_ENTRY_FOUND = 789731873, sizeof (IMSI) = 8 ---> lors de l'utilisation printf
Aussi pour les petites valeurs à 7 chiffres, je n'ai aucun problème.
avez-vous ou l'initialiser avec un nombre non négatif? –
Pouvez-vous le repro sur un programme minimal et le coller? –