wie caste ich richtig
-
Konfusius schrieb:
wenn du einen c-string haben willst, dann mußt du dich mit dem guten alten ansi-c-sprintf behelfen:
#include<cstdio> int x=67276; char text[256]; sprintf(text,"%d",x);stringstream stream; stream<<x; stream.str().c_str();
-
HumeSikkins schrieb:
Konfusius schrieb:
eigentlich müßte man unterscheiden zwischen casten und konvertieren.
Richtig.
beim konvertieren werden daten von einem datentyp in einen anderen umgewandelt. zB in int in eine zeichenkette.
beim casten bleiben die daten im speicher unverändert.Das ist quatsch.
Ein cast ist immer eine explizite Typkonvertierung. Was genau dort geschieht, ist abhängig von den konkreten Typen und dem verwendeten cast-Ausdruck. Eine reine Reinterpretierung des Bitmusters macht in der Regel nur der reinterpret_cast.
habe mich vielleicht mißverständlich ausgedrückt. als ich geschrieben hatte
beim casten bleiben die daten im speicher unverändert.
meinte ich "casten" im sinne einer präzisen begriffsdefinition. in sinne von c/c++ kann casten natürlich auch konvertieren bedeuten.
-
Konfusius schrieb:
meinte ich "casten" im sinne einer präzisen begriffsdefinition. in sinne von c/c++ kann casten natürlich auch konvertieren bedeuten.
Wovon redest du? Die C++ Bedeutung von cast ist die selbe wie in anderen Programmiersprachen auch.
Ich habe das immer so gelernt: Bei Programmiersprachen unterscheidet man zwischen coercions und cast. coercions sind implizite Typkonvertierungen die durchgeführt werden um gewisse Operations-Interfaces zu erfüllen.
cats sind hingegen explizite Typkonvertierungen die vom Programmierer durchgeführt werden.
Ob bei coercions und/oder casts Informationen verloren gehen können, bzw. Typen einfach nur uminterpretiert werden ist abhängig von der Programmiersprache. Das sind beides keine erforderlichen Eigenschaften.
-
ich meine "casten" im sinne von uminterpretieren und "konvertieren" im sinne von umwandeln.
ich habe in meinem beitrag nur versucht zu erklären, was unter umiterpretieren im gegensatz zu umwandeln zu verstehen ist. das ich "casten" anstelle von "uminterpretieren" geschrieben habe war vielleicht mißverständlich.