C++ 静态强制转换需要执行时间吗?
我知道动态_cast确实需要执行时间,甚至被认为是很慢的,但是静态_cast也需要执行时间吗?下面是一个示例代码C++ 静态强制转换需要执行时间吗?,c++,C++,我知道动态_cast确实需要执行时间,甚至被认为是很慢的,但是静态_cast也需要执行时间吗?下面是一个示例代码 void printv(const void *str) { std::cout << *static_cast<const std::string*>(str) << "\n"; } void prints(const std::string *str) { std::cout << *str << "\
void printv(const void *str) {
std::cout << *static_cast<const std::string*>(str) << "\n";
}
void prints(const std::string *str) {
std::cout << *str << "\n";
}
int main()
{
std::string str("my string");
printv(&str);
prints(&str);
system("pause");
return 0;
}
printv会比prints花费更长的时间吗,因为它内部包含强制转换?静态强制转换在运行时可能需要时间。例如,如果将int转换为float,则需要进行工作。通常,强制转换指针不需要任何运行时成本。静态强制转换可能需要运行时时间。例如,如果将int转换为float,则需要进行工作。通常,强制转换指针不需要任何运行时成本。这可能更适合视为副本这可能更适合视为副本