【发布时间】:2021-11-05 07:32:37
【问题描述】:
我有变量input 类型const std::string&:
const std::string& input
现在我需要将其转换为const unsigned char*,因为这是函数的输入。
Unitl 现在我有了正确的转换代码:
reinterpret_cast<const unsigned char*>(input.c_str())
这很好用,但在叮当声中我收到了警告:
do not use reinterpret_cast [cppcoreguidelines-pro-type-reinterpret-cast]
将string 或const char* 更改为const unsigned char* 的正确方法是什么?
【问题讨论】:
-
正确的方法是使用reinterpret_cast
-
我很想看看这个功能。我觉得奇怪的是,一个期望 C 字符串的函数需要无符号字符。看起来更像是一个通用缓冲区。
-
您可以进行 2 次静态转换 - 一次到
const void*,第二次从const void*到const unsigned char*也可能对您来说更好的容器是unsigned char的向量,而不是std::string。
标签: c++ reinterpret-cast clang-static-analyzer