繁体   English   中英

什么是C#检查的C ++等价物

[英]What is the C++ equivalent of the C# checked

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

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

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

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

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

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

使用无符号数据类型进行位操作和校验和。 无符号行为的环绕行为在C ++中已明确定义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM