char nach uchar konvertieren

  • Themenstarter Themenstarter Bengel0815
  • Beginndatum Beginndatum
B

Bengel0815

hallo erstmal.

eine sehr einfach frage, komme leider aber von der java-welt und hab noch so meine probleme mit c++

wie mache ich aus einem char einen uchar? ich habe ne funktion, die als parameter uchar braucht und die aufrufende funktion hat den wert als char
 
Viele Compiler brauchen da keine explizite Typkonvertierung. Falls doch, dann geht das so:
Code:
unsigned char ucTest1;
char cTest2;

ucTest1 = (unsigned char)cTest2;
Bei der expliziten Typkonvertierung wird der Zieltyp in runden Klammern vor die zu konvertierende Variable gesetzt.
 
jokey2 hat gesagt.:
Viele Compiler brauchen da keine explizite Typkonvertierung. Falls doch, dann geht das so:
Code:
unsigned char ucTest1;
char cTest2;

ucTest1 = (unsigned char)cTest2;
Bei der expliziten Typkonvertierung wird der Zieltyp in runden Klammern vor die zu konvertierende Variable gesetzt.

Mhm besser (wenn man C++ programmiert) ist vielleicht:

Code:
ucTest1 = static_cast<unsigned char>(cTest2);

Man sollte sich den alten C Cast abgewöhnen, weil durch den static_cast:
1.) Programmierer ihrenWillen implizit dokuemntieren;
2.) Potentielle Fehlerquellen gezielt lokalisiert werden können (Suche im Quelltext nach Zeichenkette "static_cast");
3.) die Lesbarkeit verbessert wird

Gruß

RedWing
 
Da hast Du natürlich recht. Ich programmiere noch so oft C, da bleibt sowas hartnäckig hängen.
 
ich bekomme immer noch die fehlermeldung

Code:
error C2664: 'SQLDriverConnect' : cannot convert parameter 3 from 'unsigned char' to 'unsigned char *'
 
Da wird ein Zeiger auf die Variable erwartet. Bei einem Funktionsaufruf sollte das dann so geschrieben werden:

Code:
void MyFunction(*unsigned char);  // Deklaration

unsigned char ucTest;
MyFunction( &ucTest);  // Verwendung
 
waren tatsächlich die pointer, bei java wird da nicht zwischen unterschieden :-(
 
Zurück