[英]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.