Größenangabe in Bytes

8

Was ist die Größe von unter enum in Bytes?

%Vor%

Ich habe den Code unten verwendet, um es zu finden, aber ich denke, es ist nicht genug..Es ist ein String-Array mit 10 Elementen..Sollte ich die Zeichen in jedem Element zählen, nehmen Sie jedes Zeichen 1 Byte und fügen Sie alle Bytes von Elementen? was ist mit vorzeichenlosen Zahlen ???

%Vor%

Ich bin mir nicht sicher, ob es wichtig ist zu erwähnen, dass ich in der Mitte von marshaling einen nativen Win32-Code zu c # habe, und es ist GRÜN, die Größe der Enumeration für die Verwaltung von Adressen im Speicher zu finden. p>     

Parid0kht 06.01.2014, 06:52
quelle

1 Antwort

12

Die Dokumentation lautet:

  

Der Standardtyp der Aufzählungselemente ist int.

Daher hat Ihr Datentyp die Größe von 4 Bytes, was der Größe eines int entspricht.
Sie können dies mit dem folgenden Befehl bestätigen:

%Vor%

Während Sie unter Verwendung eines Namens auf die Enum-Werte im Quelltext verweisen, werden diese im Code dargestellt, der auf dem Computer als Integer-Werte ausgeführt wird. Ihr Kommentar zu String-Arrays ist ziemlich weit gefasst.

Ich denke auch, dass Sie das Thema Größe überdenken. Wenn Sie Ihre andere letzte Frage betrachten, scheinen Sie eine C ++ - Struktur in C # für pinvoke zu übersetzen. Nun, das C # -Enum wird direkt auf die C ++ - Enumeration abgebildet. Der Pinvoke Marshaller kümmert sich um die Größen und legt sie für Sie bereit. Sie müssen das nicht explizit behandeln.

    
David Heffernan 06.01.2014, 07:05
quelle

Tags und Links