標準c支持中斷,可是中斷函數不能傳遞參數,不能有返回值,嚴格意義上講,中斷函數不能被稱做函數,由於沒有執行緒主動調用它,函數調用路徑是一條肯定的順序路徑,因爲中斷處理是被動的,若是它有參數,那麼誰傳給它呢?若是它有返回值,它返回給誰呢?即便這樣,中斷處理也仍是在棧上執行的,這裏的棧是借用任意進程上下文的棧的,中斷處理之因此在棧上是硬件體系決定的,而不是它非要在棧上不可,它徹底能夠切到本身的棧上去。ide
計算機爲什麼用補碼存儲數據---以8位數據爲例:函數
不少資料上解釋了計算機使用補碼存儲數據的理由,好比什麼能夠將符號位和數據位一塊兒參與運算等等,這些解釋實際上僅僅解釋了標而沒有解釋本,那麼到底的緣由是什麼呢?本質的緣由是因爲計算機中存儲數據是一種循環的環形形式而不是線性的形式,也就是說數據位老是可能滿載的,好比8位的數據最大是8個1,此8個1加上1以後就會迴環到0,也就是說8位的二進制位永遠都不會表示大於8個1的數據,迴環成了這裏的決定性概念,好像時鐘那樣一圈一圈不停的重複,對於有符號類型,若是咱們將數據的容量一分爲二,那麼咱們就能夠表示負數,若是將數據容量比做一個環形,那麼從零點做爲界限,右邊表示正數,而左邊表示負數,按照0爲中點,使用二進制的加減法就能夠得知爲什麼負數是正數的二進制補碼,這裏補碼的含義其實就是反碼加1,爲何加1,正是因爲有一個0在中間,歸到哪裏都不合適,所以歸到負數的加法裏面。進程