2010-08-22 10 views

Antwort

4

Der nächstliegende äquivalente Typ in C++ wäre ein dynamisch erstelltes Array von "unsigned char" (es sei denn, Sie laufen auf einem Prozessor, der ein Byte als etwas anderes als 8 Bits definiert).

So zum Beispiel

in C#

byte[] array = new byte[10]; 

in C++

unsigned char *array = new unsigned char[10]; 
+0

schreiben Sie sind, danke!) (Half mir für meine Visual-C++.net library) – Rella

+2

Meinst du nicht "byte [] array = new byte [10]"? – Anthony

+0

Ja danke für diesen Fang. Ich würde darauf hinweisen, dass es viele Orte gibt, wo C++ - und C# -Arrays sich unterscheiden. Während beide nicht in der Größe geändert werden können, gibt C# Ihnen einen Fehler, wenn Sie versuchen, auf mehr Daten zuzugreifen, als verfügbar sind. Wenn Sie Glück haben, stürzt C++ möglicherweise ab. Auch kann C# Ihnen jederzeit die Größe des Arrays mitteilen, C++ kann Ihnen nicht sagen, wie groß das Array ist, wenn es einmal erstellt wurde, Sie müssen sich an etwas erinnern. – MerickOWA

12

byte[], in C#, ist ein Array von vorzeichenlosen 8-Bit-Ganzzahlen (byte).

Ein Äquivalent wäre uint8_t array[].

uint8_t ist in stdint.h (C) und cstdint (C++) definiert, wenn sie nicht auf Ihrem System zur Verfügung gestellt werden, können Sie sie einfach herunterladen oder selbst definieren (siehe this SO question).

+0

Obwohl sie nicht nennen Ihre Variablen 'array'. :) –

+3

oder konventioneller, "unsigned char" –

+3

@theatrus, nein, "char" ist nicht garantiert, ein 8-Bit-Typ zu sein. –

6

In C++ Standard char, signed char und unsigned char sind drei verfügbaren char-Typen. char vielleicht signed oder unsigned daher:

typedef signed char sbyte; 
typedef unsigned char byte; 

byte bytes[] = { 0, 244, 129 }; 
Verwandte Themen