Определение int64 t
Я новичок в C / C++, поэтому у меня есть несколько вопросов о базовом типе:
а) можете ли вы объяснить мне разницу между int64_t и long (long int)?
В моем понимании, оба являются 64-битными целыми числами. Есть ли какая-то причина, чтобы выбрать один из них?
b) я попытался найти определение int64_t в интернете, без особого успеха. Есть ли авторитетный источник, с которым мне нужно проконсультироваться по таким вопросам?
c) для кода с помощью int64_t to скомпилировать, я в настоящее время, в том числе <iostream>, что не имеет большого смысла для меня. Есть ли другие включает в себя, которые обеспечивают объявление int64_t?
4 ответа:
а) можете ли вы объяснить мне разницу между
int64_tиlong(long int)? В моем понимании, оба являются 64-битными целыми числами. Есть ли какая-то причина, чтобы выбрать один из них?первый является целочисленным типом со знаком ровно 64 бит. Последний является целочисленным типом со знаком по крайней мере 32 бита.
b) я попытался найти определение
int64_tв интернете, без особого успеха. Есть ли авторитетный источник, с которым мне нужно проконсультироваться по таким вопросам?http://cppreference.com охватывает это здесь:http://en.cppreference.com/w/cpp/types/integer. однако авторитетным источником является стандарт C++ (этот конкретный бит можно найти в §18.4 целочисленных типов [cstdint]).
c) для кода с использованием
int64_tдля компиляции, я в том числе<iostream>, что не имеет смысла мне. Есть ли другие включает в себя, которые обеспечивают объявлениеint64_t?он объявлен в
<cstdint>или<cinttypes>(в пространстве именstd), или<stdint.h>или<inttypes.h>(в глобальном пространстве имен).
int64_tгарантируется стандартом C99 быть ровно 64 бит в ширину на платформах, которые его реализуют, нет такой гарантии дляlongкоторый составляет не менее 32 бит, так что это может быть больше.§7.18.1.3 целочисленные типы точной ширины 1 имя typedef intN_t обозначает целочисленный тип со знаком шириной N, без битов заполнения и представление дополнения two. Таким образом, int8_t обозначает знак целочисленный тип с шириной ровно 8 биты.