Вам нужно ровно 64 бита или хотя бы 64 бита?
Используйте любой из int64_t
, int_least64_t
или int_fast64_t
, наиболее четко выражающий ваши намерения. (Все три почти наверняка относятся к одному типу в современных системах, но документирование ваших намерений является ценным.)
Все реализации должны обеспечивать int_least64_t
и int_fast64_t
. По крайней мере теоретически возможно, что int64_t
может не существовать (скажем, если компилятор имеет 128-битный тип, но не 64-битный тип, или если целые числа со знаком не представлены с использованием дополнения 2).
(Но в каждой из реализаций C99, которые я когда-либо видел, long long
- это ровно 64 бита, а int64_t
существует.)