__int128 是 GCC 提供的擴展(extension),可以當作 128 位整數使用。
關於 __int128 和 __int128_t
Normally,
_tsuffix means a typedef,__prefix means reserved for compiler and_prefix means reserved for standard library; I would guess that__int128is the final native type supported by the compiler, while__int128_twas a temporary hack that they moved away from.
SOURCE
如何判斷你所使用的 GCC 版本是否包含 __int128 擴展
You can test for the
__SIZEOF_INT128__macro --- which is (typically) 16 if defined.
SOURCE
2019/10/13 更新
-
在我的編譯器(g++.exe (Rev2, Built by MSYS2 project) 9.2.0)上,
__int128會報warning: ISO C++ does not support '__int128',
__int128_t則不會;因此最好只用__int128_t。 -
Codeforces 不支持
__int128_t。
2010/5/17 更新
Codeforces 支持 128 位整數了。
REFERENCE:
https://stackoverflow.com/q/21886985
https://stackoverflow.com/q/29638723/6052725
