Voglio poter utilizzare interi positivi grandi (8 byte) nel mio progetto, anche se sizeof (unsigned long) produce 8 nel mio sistema, ho letto che in la maggior parte dei sistemi non firmati è lunga solo 4 byte e ho deciso di fornire unsigned long long go, poiché è garantito che siano almeno 8 byte.non firmato lungo lungo vs non firmato lungo (punto di vista della portabilità)
Più lo uso però, ho visto che non è anche super portatile, ad esempio in alcuni sistemi (a seconda del compilatore) printf lo formatta con% llu, in alcuni lo formatta con% lld.
Il mio codice verrà eseguito solo in macchine debian a 64 bit, in cui unsigned long sarà 8 byte. La portabilità non è un grosso problema. E 'un eccessivo uso di unsigned long long unsigned long in queste circostanze, ci sono altri vantaggi nell'usare unsigned long long unsigned long?
Hai provato "uint64_t'? È in ' .' –
Mysticial
qual è il vantaggio di usarlo su unsigned long long? –
Arresta la compilazione se non si dispone di alcun tipo con esattamente 64 bit mentre lungo lungo lungo il tipo più lungo. Entrambi sono presenti in C++ 11, entrambi sono spesso presenti come estensione prima, ma non sarei sorpreso se qualcuno fosse presente e non l'altro.Se non ce l'hai, stdint.h è più facile da emulare (supponendo che il tipo sia presente) piuttosto che lungo. – AProgrammer