Ответ 1
Не уверен в первой версии, но вы можете проверить макрос __SIZEOF_INT128__
, который (как правило) 16
, если он определен.
В gcc docs 128-бит целые числа:
В качестве расширения поддерживается целочисленный скалярный тип
__int128
для целей, которые имеют целочисленный режим, достаточно широкий для хранения 128 бит. Просто напишите__int128
для подписанного 128-битного целого числа илиunsigned __int128
для неподписанного 128-битного целого числа.В GCC нет поддержки для выражения целочисленной константы типа
__int128
для целей с длинное длинное целое число менее 128 бит.
Мне было интересно, какая версия gcc добавила поддержку для этого типа, или если есть макрос, который можно использовать непосредственно для проверки его существования.
Не уверен в первой версии, но вы можете проверить макрос __SIZEOF_INT128__
, который (как правило) 16
, если он определен.
Получить источник и:
git log --reverse --grep='__int128'
чтобы увидеть первое вхождение слова в сообщении фиксации.
Это приводит нас к: https://github.com/gcc-mirror/gcc/commit/6388cfe24f7ecbdc2ba2d4c80638ea6c95ba07c2, в котором говорится:
Add __int128 keyword.
Затем перечислите все теги, которые содержат эту фиксацию, с помощью:
git tag --contains 6388cfe24f7ecbdc2ba2d4c80638ea6c95ba07c2
и самый ранний из них:
gcc-4_6_0-release
TODO: есть также более ранняя ссылка на __int128_t
, которую я не понял. В чем разница между __int128
и _int128_t
?