Так что, если ваше преобразование из Пустоты * к типу * или от типа * к мочеиспусканию * Вы должны использовать:Cast от Пустоты * до TYPE * с помощью C++ стиля ролей: static_cast или reinterpret_cast
void func(void *p)
{
Params *params = static_cast<Params*>(p);
}
или
void func(void *p)
{
Params *params = reinterpret_cast<Params*>(p);
}
Мне кажется, что static_cast кажется более правильным, но я видел, что оба используются для этой же цели. Кроме того, имеет значение направление преобразования. т.е. должен ли я использовать static_cast для:
_beginthread(func,0,static_cast<void*>(params)
Я прочитал другие вопросы по отливке стиле C++, но я до сих пор не уверен, что правильный путь для этого сценария (я думаю, что это static_cast)
Так почему reinterpret_cast <>? Существуют ли ситуации, в которых следует использовать reinterpre_cast <>. Могут ли все операции литья быть охвачены другими 3 операциями литья? –
Если другая сторона void * будет применена к базовому классу, вам необходимо также передать этот базовый класс перед присвоением void. –
@Noah Некоторая ссылка для этого? – 2010-06-17 19:27:00