nek*_*rog 2 c unsigned-integer
我试图为unsigned int分配一个数字,但它会导致错误.我想只要数字介于0和2 ^ 32之间,它应该可以工作.这是我的代码.
unsigned int number = 4026658824;
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误.
错误:根据1999 ISO C标准不断推广
十进制常量的类型取决于它可以表示的类型,根据6.4.4.1整数常量:
整数常量的类型是相应列表中可以表示其值的第一个.
(请参阅链接中的表格,了解C语言如何推导出实际的整数常量类型).
通常,signed int不能表示该值4026658824.所以,4026658824可能有类型long int或long long int在您的系统上.如果unsigned int可以表示4026658824那么这很好,但你的编译器是谨慎的.
您可以使用u或U后缀或投射它unsigned int.u如果整数常量具有更大的值,则后缀可能不起作用.例如,如果17179869184u无法表示,unsigned int则其类型可能是unsigned long int或者unsigned long long int您仍然可以获得有关它的诊断信息.