gpt4 book ai didi

c# - 使用未经检查的上下文是否会影响 C# 中的性能或可移植性?

转载 作者:太空狗 更新时间:2023-10-29 18:02:47 26 4
gpt4 key购买 nike

我想实现一个使用 int 数据类型并依赖于整数溢出的快速散列函数。 MSDN 说,为了保证溢出不会触发异常,我必须为该代码使用 unchecked block 。

假设我只在 unchecked block 中包含该计算。我的代码是否会因此出现任何性能或可移植性问题?

最佳答案

选中仅添加一个过程指令:

checked
{
int y = x * x;
05297978 mov eax,dword ptr [ebp-10h]
0529797B imul eax,dword ptr [ebp-10h]
0529797F jno 05297986 //if not overflow: goto 05297986
05297981 call 72A29522 //invoke exception
05297986 mov dword ptr [ebp-14h],eax
}

unchecked
{
int yy = xx * xx;
0529799E mov eax,dword ptr [ebp-18h]
052979A1 imul eax,dword ptr [ebp-18h]
052979A5 mov dword ptr [ebp-1Ch],eax
}

关于c# - 使用未经检查的上下文是否会影响 C# 中的性能或可移植性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7832881/

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