1099511628211
также слишком велико для (32-разрядного) long
; добавьте туда суффикс ULL
.
AFAIK, GCC 4. x поддерживает long long
для всех x . Действительно, я бы сказал, что GCC 3. x поддерживает long long
, по крайней мере, для более поздних значений x .
Мне трудно заставить ваш код вызывать любое предупреждение, используя G ++ 4.6.1 на MacOS X 10.7.2 в 32-битном или 64-битном режиме. Тем не менее, я могу получить жалобу от компилятора LLVM из XCode 4.x (вывод g++ --version
начинается с i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
) действительно будет жаловаться, пока я не добавлю второй ULL
, но только если я скомпилирую в 32-битном режиме. Если он используется в 64-битном режиме, он также не будет жаловаться.