【发布时间】:2021-11-10 15:12:44
【问题描述】:
我是 C++ 中显式转换的新手。我认为 static_cast 比 reinterpret_cast 更具限制性。但是,我有一个函数,其中 static_cast 给了我想要的结果,而 reinterpret_cast 告诉我我的转换无效。为什么会这样?
void from_int(int x)
{
if (x < 32 || x > 126)
std::cout << "char: Non displayable" << std::endl;
std::cout << "char: '" << reinterpret_cast<char>(x) << "'" << std::endl;
std::cout << "int: " << x << std::endl;
std::cout << "float: " << x << ".0f" << std::endl;
std::cout << "double: " << x << ".0" << std::endl;
}
【问题讨论】:
-
我将 reinterpret_cast 误解为与 C 风格的演员一样,但事实并非如此。见stackoverflow.com/questions/60602983/…
标签: c++ casting reinterpret-cast static-cast