VC++ SafeInt
生活随笔
收集整理的這篇文章主要介紹了
VC++ SafeInt
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉自:https://blog.csdn.net/itcastcpp/article/details/5367049
(對原文有做修改,在Visual Studio 2017里調試通過)
VC++ 2010在C++里增加了一個特殊的新特性,SafeInt是一種安全數據類型,能夠保證運算是安全的,使用安全數據類型能夠規避軟件異常,以及軟件測試檢測的常規性很多錯誤。
#include "stdafx.h" #include <safeint.h> #include <iostream>using namespace std; using namespace msl::utilities;class CMySafeIntException : public SafeIntException { public:static void SafeIntOnOverflow(){cout << "捕獲SafeInt溢出異常!" << endl;}static void SafeIntOnDivZero(){cout << "捕獲SafeInt被零除!" << endl;} };int main(int argc, _TCHAR* argv[]) {while (1){unsigned int a, b;cout << "輸入前8位無符號整數: ";cin >> a;cin.ignore();cout << "輸入第二個8位無符號整數: ";cin >> b;cin.ignore();// 添加兩個變量cout << "添加兩個數字的8位整數:" << endl;// 新增兩個整數使用正常調用unsigned __int8 i1 = a;unsigned __int8 i2 = b;cout << " 標準運算,結果=";unsigned __int8 iResult = i1 + i2;cout << (int)iResult << endl;// 新增兩個整數使用SafeInt對象SafeInt<unsigned __int8, CMySafeIntException> si1(i1);SafeInt<unsigned __int8, CMySafeIntException> si2(i2);cout << " Using SafeInt objects, result=";SafeInt<unsigned __int8, CMySafeIntException> siResult = si1 + si2;cout << (int)siResult << endl;// 整數相除cout << endl << "整數相除:" << endl;// 兩個整數正常除法cout << " 標準運算,結果=";if (i2 != 0) // Prevent a crash!{iResult = i1 / i2;cout << (int)iResult << endl;}elsecout << "中止因為除以零." << endl;//兩個整數除以使用SafeInt對象cout << " 使用SafeInt對象, 結果=";siResult = si1 / si2;cout << (int)siResult << endl;cout << endl << endl;}return 0; }總結
以上是生活随笔為你收集整理的VC++ SafeInt的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Axure元件-动态面板介绍
- 下一篇: dji android ios,DJI