uint8_t* buf1;
...
const signed char* buf2 = static_cast<const signed char*>(buf1);
来自类型&#39; uint8_t * {aka unsigned char *}&#39;的static_cast无效输入 &#39; const签名char *&#39;
c-style-cast :( const signed char *)工作正常
在这种情况下使用c-style-cast与static_cast有危险吗?
答案 0 :(得分:1)
在这种情况下使用c-style-cast与static_cast有危险吗?
在这种情况下,static_cast根本不是一个选项,正如错误信息所解释的那样。
使用c-style强制转换的危险在于你可能没有打算执行reinterpret_cast,这就是c-style强制转换在这里执行的操作。如果您打算执行reinterpret_cast,请使用reinterpret_cast。如果您打算使用static_cast,那么您的逻辑是错误的,因为这些类型与static_cast不兼容。