相关疑难解决方法(0)

警告:左移计数> =类型的宽度

我很擅长处理比特,并且在编译时遇到以下警告:

 7: warning: left shift count >= width of type
Run Code Online (Sandbox Code Playgroud)

我的第7行看起来像这样

unsigned long int x = 1 << 32;
Run Code Online (Sandbox Code Playgroud)

如果long我的系统的大小是32位,这将是有意义的.但是,sizeof(long)返回8CHAR_BIT定义为8建议long应为8x8 = 64位长.

我在这里错过了什么?是sizeofCHAR_BIT不准确还是我误解了一些基本的东西?

c bit-manipulation bit-shift long-integer

54
推荐指数
2
解决办法
5万
查看次数

什么决定整数的大小?

sizeof(int)Dev Cpp虽然它在64位机器上运行,但在我身上显示4 .为什么不考虑底层硬件并显示8呢?另外,如果我编译环境也改为64位(首先是否64 bit compiler有意义?!),那么int的大小会改变吗?

是否有任何标准来决定这一点?

c compiler-construction 64-bit sizeof

5
推荐指数
1
解决办法
6743
查看次数