C 中的checked unchecked操作符

2021-04-22 18:22:21 字數 813 閱讀 5271

checked和unchecked操作符用於整型算術運算時控制當前環境中的溢位檢查。下列運算參與了checked和unchecked檢查(運算元均為整數):

1)  預定義的++和――一元運算子。

2)  預定義的-一元運算子。

3)  預定義的+、-、×、/等二元操作符。

4)  從一種整型到另一種整型的顯示資料轉換。

當上述整型運算產生乙個目標型別無法表示的大數時,可以有相應的處理方式:

(一)使用checked

若運算是常量表示式,則產生編譯錯誤:the operation overflows at complie time in checked mode.

若運算是非常量表示式,則執行時會丟擲乙個溢位異常:overflowexception異常

(二)使用unchecked

無論運算是否是常量表示式,都沒有編譯錯誤或是執行時異常發生,只是返回值被截掉不符合目標型別的高位。

(三)既未使用checked又未使用unchecked若運算是常量表示式,預設情況下總是進行溢位檢查,同使用checked一樣,會無法通過編譯。

若運算是非常量表示式,則是否進行溢位檢查,取決於外部因素,包括編譯器狀態、執行環境引數等。

下例說明了checked和unchecked操作符在非常量表

達式中的使用方法:

class test

static int h()

}checked和unchecked操作符在常量表示式中的使用方法:

class test

static int g()

static int h()

}

C 中的long與C 中的long

微軟很厲害,c 是非常優秀的計算機語言,c 比c 還厲害,c c 本身不就包含四個 號嗎?而微軟發明了c c 中的long比c 中的long要long兩倍!不信你看 我正在使用.net寫乙個預約排隊的程式,因為一前通過vc編寫了乙個用於顯示登記資訊的控制項,現在使用c 重新預約程式,則必然要呼叫vc...

c中的const與c 中的const

c中的const是乙個偽唯讀識別符號。include include int main 此時輸出a的值為20,被指標間接的改變了。c 中,const進行了增強,不在是乙個偽識別符號了。const int a 10 int p int a p 20 cout a p endl cout a endl ...

C 中的const 和C中的區別

c 中的const 一 和c中的區別 c 中的const正常情況下是看成編譯期的常量,編譯器並不為const分配空間,只是在編譯的時候將期值儲存在名字表中,並在適當的時候折合在 中.所以,以下 include using namespace std int main for int i 0 i si...