2010-12-29 10 views
2

Kann ich die Größe von (Byte-Länge in C) mit Perl bekommen?Kann ich die Größe von (Byte-Länge in C) mit Perl bekommen?

my $byte_length_in_C_of_int = ...; 

edit:

perlpacktut/Integers: Nach dem ersten Lesen dachte ich "sizeof (...)" und "$ Config {...} Größe" kann unterschiedlich sein, aber nach dem Ort, wo ich rereading Angenommen, $ Config {intsize} gibt meine C_int-Byte-Länge an.

+0

perl verwalten sich Speicher, ich bin mir nicht sicher, dass Sie das bekommen können. was ist der Zweck ? – ykatchou

Antwort

6

Ja, aber es wäre gut zu wissen, wofür Sie es brauchen.

Wenn Sie eine Datenstruktur erstellen, um mit einer anderen App in Binärform zu kommunizieren, gehen Sie am besten mit pack - die richtige Kombination von Formaten lässt Sie mit fast jedem Typ entweder nativ oder spezifisch arbeiten Größen definiert, und es behandelt Dinge wie Struct Alignment, length-prefixed Strings und TLV.

Für andere Anwendungen könnten Sie besser in Config suchen. Es gibt Variablen für die Größen verschiedenen Typen da drin, einschließlich intsize, longsize, ptrsize, doublesize, longlongsize (wenn d_longlong gesetzt), longdblsize (wenn d_longdbl gesetzt), ivtype/ivsize, nvtype/nvsize (für Perl-interne numerische Typen), und byteorder (damit Sie Endianess herausfinden können).