gpt4 book ai didi

c++ - C++ 风格转换对性能的影响?

转载 作者:IT老高 更新时间:2023-10-28 13:58:10 25 4
gpt4 key购买 nike

我是 C++ 风格转换的新手,我担心使用 C++ 风格转换会破坏我的应用程序的性能,因为我有一个 real-time-critical deadline在我的中断服务例程中。

我听说有些强制转换甚至会抛出异常!

我想使用 C++ 样式转换,因为它会使我的代码更“健壮”。但是,如果性能受到影响,那么我可能不会使用 C++ 样式转换,而是会花更多时间测试使用 C 样式转换的代码。


有没有人做过任何严格的测试/分析来比较 C++ 风格转换和 C 风格转换的性能?

你的结果是什么?

你得出了什么结论?

最佳答案

如果 C++ 风格的转换可以在概念上被 C 风格的转换取代,那么就不会产生任何开销。如果不能,如 dynamic_cast 的情况,没有 C 等效项,您必须以一种或另一种方式支付成本。

以如下代码为例:

int x;
float f = 123.456;

x = (int) f;
x = static_cast<int>(f);

使用 VC++ 为两个强制转换生成相同的代码 - 代码是:

00401041   fld         dword ptr [ebp-8]
00401044 call __ftol (0040110c)
00401049 mov dword ptr [ebp-4],eax

在转换为引用时,唯一可以抛出的 C++ 转换是 dynamic_cast。为避免这种情况,请转换为一个指针,如果转换失败,该指针将返回 0。

关于c++ - C++ 风格转换对性能的影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/674982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com