首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

十六进制数前头2个 LL 定义定义是什么意思

2013-12-19 
十六进制数前面2个 LL 定义定义是什么意思?const UI64 rc[R+1] {LL(0x0000000000000000),LL(0x1823c6e88

十六进制数前面2个 LL 定义定义是什么意思?
const UI64 rc[R+1] = {
LL(0x0000000000000000),
LL(0x1823c6e887b8014f),
LL(0x36a6d2f5796f9152),
LL(0x60bc9b8ea30c7b35),
LL(0x1de0d7c22e4bfe57),
LL(0x157737e59ff04ada),
LL(0x58c9290ab1a06b85),
LL(0xbd5d10f4cb3e0567),
LL(0xe427418ba77d95d8),
LL(0xfbee7c66dd17479e),
LL(0xca2dbf07ad5a8333),
};

GCC 编译报错!
[解决办法]
应该是 long long 的意思,需要自己加一个宏定义 

#define LL (long long)

[解决办法]
long long或者unsigned long long
LZ必须了解原来程序是怎么定义的,定义不正确可能运行会出错
[解决办法]
楼主真懒, 都知道GCC报错了,却不发错误信息,叫人猜。

大概应该是 #define LL(x) x##ll。 但话说这样未免过于无聊了,而且按理应该是ULL才对
[解决办法]
引用:
楼主真懒, 都知道GCC报错了,却不发错误信息,叫人猜。

大概应该是 #define LL(x) x##ll。 但话说这样未免过于无聊了,而且按理应该是ULL才对


这个正解,同意
#define LL(x) x##ll
#define ULL(x) x##ull

[解决办法]
报的什么错误呢?错误贴出来,结合代码可能会比较明显想要表达什么意思
[解决办法]
看UI64这个名字,LL应该是unsigned long long的意思
[解决办法]
1、UI64类型可以这样定义,typedef unsigned long long UI64
2、LL宏可以这样定义,#define LL(x) x##LL
3、ULL宏可以这样定义,#define ULL(x) x##ULL
4、这样应该用ULL无符号的64位整数才对
5、可能作者是在C99之前编译器所写的,故自己定义LL和ULL宏

ISO C99 supports data types for integers that are at least 64 bits wide, and as an extension GCC supports them in C90 mode and in C++. Simply write long long int for a signed integer, or unsigned long long int for an unsigned integer. To make an integer constant of type long long int, add the suffix ‘LL’ to the integer. To make an integer constant of type unsigned long long int, add the suffix ‘ULL’ to the integer.


引用:
const UI64 rc[R+1] = {
LL(0x0000000000000000),
LL(0x1823c6e887b8014f),
LL(0x36a6d2f5796f9152),
LL(0x60bc9b8ea30c7b35),
LL(0x1de0d7c22e4bfe57),
LL(0x157737e59ff04ada),
LL(0x58c9290ab1a06b85),
LL(0xbd5d10f4cb3e0567),
LL(0xe427418ba77d95d8),
LL(0xfbee7c66dd17479e),
LL(0xca2dbf07ad5a8333),
};

GCC 编译报错!

[解决办法]
grep -r "#define LL" *.h *.c *.cpp

热点排行