Vielen Dank im Voraus für die Hilfe. versucht, eine ziemlich große C/Cpp (ja ich weiß) Bibliothek zu verwenden, und in einem Fehler auftritt. Leider ist der Fehler, den ich zurückbekomme, extrem vage, aber ich weiß, welche Variable das verursacht. Alles, was ich tun möchte, ist einfach diese Variable auszudrucken, so dass ich sehen kann, was vor sich geht. Diese Variable ist jedoch kein Standardtyp. Es hat die ArtKonvertieren Sie eine Reihe von Typedefs in ein Char-Array
Opt_Int64 someVar = 10;
wo
typedef int64_t VosT_int64;
typedef VosT_Int64 OpT_Int64;
Für das Leben von mir, ich kann nicht herausfinden, wie dieser Opt_Int64 Typen in einen char-Array zu konvertieren, so dass ich es ausdrucken können. Ich würde davon ausgehen, dass die folgende Funktion würde diese
void int64ToChar(char mesg[], Opt_Int64 num) {
for(int i = 0; i < 8; i++) mesg[i] = num >> (8-1-i)*8;
}
für mich tun, aber es scheint nicht (ich ein sehr einfaches Hallo Welt Stil Programm gebaut, dies zu testen) zu arbeiten. Entweder verstehe ich typedef nicht so gut wie ich sollte oder es muss etwas mit der obigen Funktion nicht stimmen. Ist typedef nicht nur eine Möglichkeit, dem Compiler mitzuteilen, dass Sie einem Typ einen anderen Namen geben?
Es sieht so aus, als ob Sie (inkorrekt) versuchen, eine 64-Bit-Ganzzahl in 8 separate Ganzzahlen von jeweils 8 Bits zu konvertieren, von denen keine etwas mit einer von Menschen lesbaren Zeichenfolge zu tun hat Sie sprechen über die Verwendung von \ n und char. Wenn Sie das wollen, sind Sie in ernsthaften Schwierigkeiten. :) –
Wie würden Sie ein 'int' in ein char-Array konvertieren ...? – immibis
Ich würde es ein BYTE-Array nennen, wenn es nur für mathematische Operationen, vielleicht für die Verschlüsselung, aufgeteilt wäre? Das scheint er zu versuchen. Um eine druckbare Zeichenfolge zu erhalten, ist das völlig anders, und das ist in Brians Antwort enthalten. –