1. 程式人生 > >left shift count >= width of type [enabled by default]

left shift count >= width of type [enabled by default]

今天在使用sizeof巨集的時候發現了sizeof的一個小缺陷。現象如下:

經過查閱,發現是位移運算子的限制導致的。

語法如下:位移計數(直白點就是需要移動的位數)必須大於或者等於0,而且要小於那個位移物件的長度n。加上這個限制主要是為了能夠在硬體上高效的實現位移運算。

舉個栗子:在一個32位系統中,int資料型別為32位,如果要移動一個int型別的數,那麼最多隻能移動31位!

上面的程式更改如下: