我对处理位非常陌生,并且在编译时遇到了以下警告:
7: warning: left shift count >= width of type
我的第 7 行看起来像这样
unsigned long int x = 1 << 32;
long
如果我的系统上的大小是 32 位,这将是有意义的。但是,sizeof(long)
返回8
并被CHAR_BIT
定义为8
建议 long 应该是 8x8 = 64 位长。
我在这里想念什么?是sizeof
不CHAR_BIT
准确的还是我误解了一些基本的东西?