如何使用双铸造static_cast

How use static_cast with double casting

本文关键字:static cast 何使用      更新时间:2023-10-16

如何将static_cast与这样的强制转换类型一起使用:

CString response;
resultData = (void *) (const char *) response;

其中结果数据类型为 void *&

我尝试通过以下方式执行此操作:

resultData = static_cast<(void*)(const char*)>(response);
resultData = static_cast<void*>(static_cast<const char*>(response));

但它不起作用。

你有什么想法吗?

您需要投射到const void *

resultData = static_cast<const void*>(static_cast<const char*>(response));

或者你需要使用const_cast(这是删除const所必需的,static_cast不能删除它):

resultData = static_cast<void*>(const_cast<char *>(static_cast<const char*>(response)));

注意:如果您的resultDatavoid *,则不需要转换为void *