unsigned long long vs unsigned long(Portabilität Sicht)

Ich möchte in der Lage sein, große positive Ganzzahlen(8 Byte) in meinem Projekt, obwohl sizeof(unsigned long) Erträge 8 in meinem system, ich habe gelesen, dass in den meisten Systemen unsigned long ist nur 4 bytes, und ich beschloss, unsigned long long zu gehen, da es garantiert mindestens 8 Byte.

Je mehr ich es verwenden, obwohl ich sah, dass es nicht das super tragbare, beispielsweise in einigen Systemen(je nach compiler) printf Formate %anzeiiri, in einigen Formaten, die er bei %lld.

Mein code läuft nur im 64-bit-debian-Maschinen, in denen unsigned long 8 bytes. Portabilität ist nicht ein großes Problem. Ist es ein overkill zu verwenden, unsigned long Zeit unsigned long unter diesen Umständen gibt es andere Vorteile der Verwendung von unsigned long Zeit unsigned long?

Haben Sie versucht uint64_t? Es ist in <stdint.h>.
was ist der Vorteil der Verwendung es über unsigned long long?
Es hält Zusammenstellung, wenn Sie don ' T haben jede Art mit genau 64 bits während lange lange zusammen mehr geben. Beide sind in C++11, beide sind Häufig als Erweiterung vor, aber ich würde nicht überrascht sein, wenn man manchmal die Gegenwart und nicht die anderen. Wenn Sie es nicht haben, stdint.h ist einfacher zu emulieren (vorausgesetzt, dass die Art vorhanden ist), als lange, lange.
danke, ich werde nachdenken, es zu verwenden.
Eine Frage im Zusammenhang mit here.

InformationsquelleAutor erin c | 2012-05-17

Schreibe einen Kommentar