c++ cli - 检查的 C# 的C++等效项是什么

本文关键字:是什么 C++ cli 检查 c++ | 更新日期: 2023-09-27 17:55:50

我希望避免托管C++ (CLI) 溢出。在 C# 中有一个未经检查的关键字,在 C++ 中,溢出不会以异常告终。

作为参考,此处记录了未选中。基本上,如果您这样做:

unchecked
{
      int1 = 2147483647 + 10; //this overflows in CLI but is ok in C# and C++
}

在 C# 中,它不会溢出,而是通过获取最低有效位转换为 int。例如,当您计算哈希代码时,这是合适的。

注意:我意识到没有等效C++关键字,但一些位移位应该可以解决问题;

c++ cli - 检查的 C# 的C++等效项是什么

您只需在方法周围使用#pragma unmanaged即可获取本机C++中的正常未经检查的行为。

对位运算和校验和使用无符号数据类型。 无符号行为的环绕行为在C++中得到了很好的定义。