我尝试在 Ubnutu 9.10 上使用 C 语言定义一个 64 位宽的整数。 9223372036854775808 是 2^23
long long max=9223372036854775808
long max=9223372036854775808
当我编译它时,编译器给出了警告信息:
binary.c:79:19: warning: integer constant is so large that it is unsigned
binary.c: In function ‘bitReversal’:
binary.c:79: warning: this decimal constant is unsigned only in ISO C90
binary.c:79: warning: integer constant is too large for ‘long’ type
long类型是64位宽吗?
最好的问候,
请您参考如下方法:
long long max=9223372036854775808LL; // Note the LL
// long max=9223372036854775808L; // Note the L
long long
类型至少是 64 位,long
类型至少是 32 位。实际宽度取决于编译器和目标平台。
使用 int64_t
和 int32_t
确保 64 位/32 位整数可以放入变量中。