Was ist der C++ - Analogon von C# - byte[]?
Was ist die C++ (und-oder visual-C++) analog zu C# byte[]
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ist die C++ (und-oder visual-C++) analog zu C# byte[]
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Des am ehesten vergleichbaren Typ in C++ wäre ein dynamisch erstelltes array von "unsigned char" (es sei denn, du bist auf einem Prozessor ausgeführt wird, definiert ein byte als etwas anderes als 8 bit).
So zum Beispiel
in C#
in C++
byte[] array = new byte[10]
?byte[]
in C# ist ein array von vorzeichenlosen 8-bit-Ganzzahlen (byte
).Einem äquivalent wäre
uint8_t array[]
.uint8_t
ist definiert in stdint.h (C) und cstdint (C++), wenn Sie nicht auf Ihrem system, können Sie einfach laden Sie Sie, oder definieren Sie selbst (siehe diese Frage ALSO).array
. 🙂unsigned char
char
ist nicht garantiert, dass ein 8-bit-Typ.sizeof(char) == 1
, wennchar
ist nicht 8 bits, kannuint8_t
technisch werden 8 bits? Denn das würde bedeutensizeof(uint8_t) < 1
, das heißt, nicht eine ganze Zahl, die würden uns sagen, dasssize_t
ist kein integer-Typ...byte
Typ ist garantiert ein 8-bit-Typ. @mathepic finden Sie unter uint8_t vs unsigned charchar
ist Plattform-abhängig und wenn für Ihre Plattform hat 16-bit-chars sehe ich nicht, wie stdint.h könnte möglicherweise definierenuint8_t
als ein 8-bit-Datentyp.uint8_t
wie folgt definiert:typedef unsigned char uint8_t
, so ist es modelliert auf einem char. Wenn die char ' s sind größer als 8 bit, so wird der uint8_t. Oder bin ich da falsch? Alles was ich früher sagte, war, dassuint8_t
einfach Ihre Absicht anzeigt, dass diese variable sollte nur Werte im Bereich [0 255] aber auf bestimmten Plattformen gibt es nichts hindert Sie (schlechte Programmier-Praxis beiseite) das Verkleben von größeren zahlen in es.In der C++ standard
char
,signed char
undunsigned char
werden drei char-Typen.char
vielleichtsigned
oderunsigned
daher: