Я попробовал это на моем компьютерепочему долго не int64_t, но у них одинаковый размер?
std::cout << std::is_same<int64_t, long long>::value;
std::cout << std::is_same<int64_t, long>::value;
std::cout << sizeof(long);
std::cout << sizeof(long long);
std::cout << sizeof(int64_t);
и результат false, true, 8, 8, 8
Я знаю int64_t
точно 64 бит, и это показывает long
такое же, как int64_t
, но long long
отличается от int64_t
и это также 64bit. Почему это могло произойти?
EDIT
Могу ли я использовать long long
и int64_t
взаимозаменяемые на моей машине, при условии, что они оба типа целое и имеют одинаковый размер?
«длинный» и «длинный длинный» - разные типы, несмотря на одинаковый размер –
double также имеет размер 8, но .. –
@MM я знаю 'long' может быть 32bit на некоторой машине s ... но каковы различия, когда «длинные» и «длинные» 64 бит? – bbvan