十六进制数前面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)
#define LL(x) x##ll
#define ULL(x) x##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.