Wie viele Bytes sind unsigned long long? Ist es das gleiche wie unsigned long long int?
int32_t, uint64_tetc. C ++ wird sie mit dem kommenden Standard erhalten. Sie sind in der Kopfzeile <stdint.h>.
Wie viele Bytes sind unsigned long long? Ist es das gleiche wie unsigned long long int?
int32_t, uint64_tetc. C ++ wird sie mit dem kommenden Standard erhalten. Sie sind in der Kopfzeile <stdint.h>.
Antworten:
Zusammenfassung: Es ist 64 Bit oder größer.
unsigned long longist das gleiche wie unsigned long long int. Seine Größe ist plattformabhängig, wird jedoch durch den C-Standard (ISO C99) auf mindestens 64 Bit garantiert. Es gab kein long longC89, aber anscheinend unterstützt es sogar MSVC, so dass es ziemlich portabel ist.
Im aktuellen C ++ - Standard (veröffentlicht 2003) gibt es keinen long long, obwohl viele Compiler ihn als Erweiterung unterstützen. Der kommende C ++ 0x-Standard wird dies unterstützen und seine Größe wird dieselbe sein wie in C, also mindestens 64 Bit.
Mit dem Ausdruck können Sie die genaue Größe in Bytes (8 Bit auf typischen Plattformen) ermitteln sizeof(unsigned long long). Wenn Sie genau 64 Bit möchten, verwenden Sie diese Option uint64_t, die im Header <stdint.h>zusammen mit einer Reihe verwandter Typen definiert ist (verfügbar in C99, C ++ 11 und einigen aktuellen C ++ - Compilern).
sizeof(char) wird garantiert genau einen zurückgeben . Es gibt zurück, wie groß der Operand in Anzahl von Bytes ist, nicht in der Anzahl von "Zeicheneinheiten". Daher ist es nicht Bytes "auf den meisten Plattformen" seine Bytes auf jeder Plattform.
charund Byte, haben Sie Recht. Wenn Sie gleichsetzen charund oktettieren , variiert dies.
sizeof(long long) == 1zu einer Konformität führen würde.
Das Schöne an C ++ ist, wie an C, dass die Größe dieser Dinge implementierungsdefiniert ist, sodass es keine richtige Antwort gibt, ohne dass Sie den von Ihnen verwendeten Compiler angeben. Sind diese beiden gleich? Ja. "long long" ist ein Synonym für "long long int" für jeden Compiler, der beide akzeptiert.
Es muss mindestens 64 Bit sein. Ansonsten ist die Implementierung definiert.
Genau genommen unsigned long longist es in C ++ bis zum C ++ 0x-Standard kein Standard. unsigned long longist ein 'Simple-Type-Specifier' für den Typ unsigned long long int(also Synonyme).
Die long longTypengruppe befindet sich ebenfalls in C99 und war bereits vor der Standardisierung eine häufige Erweiterung für C ++ - Compiler.
Verwenden Sie den Operator sizeof. Er gibt Ihnen die Größe eines Typs in Byte. Ein Byte besteht aus acht Bits. Siehe folgendes Programm:
#include <iostream>
int main(int,char**)
{
std::cout << "unsigned long long " << sizeof(unsigned long long) << "\n";
std::cout << "unsigned long long int " << sizeof(unsigned long long int) << "\n";
return 0;
}