Also, wenn Ihr von Void Umwandlung * * auf Typ oder vom Typ * auf void * Sie verwenden sollten:Cast von Void * TYP * mit C++ Casts: static_cast oder reinterpret_cast
void func(void *p)
{
Params *params = static_cast<Params*>(p);
}
oder
void func(void *p)
{
Params *params = reinterpret_cast<Params*>(p);
}
Für mich scheint static_cast der korrekter zu sein, aber ich habe beide für den gleichen Zweck verwendet gesehen. Auch spielt die Richtung der Umwandlung eine Rolle. dh soll ich noch static_cast für verwenden:
_beginthread(func,0,static_cast<void*>(params)
Ich habe die anderen Fragen auf C++ Stil Casting gelesen, aber ich bin noch nicht sicher, was die richtige Art und Weise für dieses Szenario ist (ich glaube, es ist static_cast)
Warum haben reinterpret_cast <>? Gibt es Situationen, in denen reinterpre_cast <> verwendet werden soll? Können alle Casting-Operationen von den anderen 3 Cast-Operatoren abgedeckt werden? –
Wenn die andere Seite von void * in eine Basisklasse umgewandelt wird, müssen Sie auch in diese Basisklasse umwandeln, bevor Sie void zuweisen. –
@Noah Eine Referenz dafür? –