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

来源:互联网 发布:查询iphone网络锁 编辑:程序博客网 时间:2024/05/21 21:26

今天在使用sizeof宏的时候发现了sizeof的一个小缺陷。现象如下:

经过查阅,发现是位移运算符的限制导致的。

语法如下:位移计数(直白点就是需要移动的位数)必须大于或者等于0,而且要小于那个位移对象的长度n。加上这个限制主要是为了能够在硬件上高效的实现位移运算。

举个栗子:在一个32位系统中,int数据类型为32位,如果要移动一个int类型的数,那么最多只能移动31位!

上面的程序更改如下:


阅读全文
0 0