Mais
Qual é o tamanho do tipo int, longo, do padrão C++?
I'm procurando por informações detalhadas sobre o tamanho dos tipos básicos de C++. Eu sei que depende da arquitetura (16 bits, 32 bits, 64 bits) e do compilador.
Mas há algum padrão para C++?
I'm usando o Visual Studio 2008 em uma arquitetura 32-bit. Aqui está o que eu recebo:
char : 1 byte
short : 2 bytes
int : 4 bytes
long : 4 bytes
float : 4 bytes
double: 8 bytes
Tentei encontrar, sem muito sucesso, informações confiáveis com os tamanhos de char
, short
, int
, long
, double
, float
(e outros tipos que eu não pensei't think of) sob diferentes arquiteturas e compiladores.
677
3
Na prática não há... 39; não há tal coisa. Muitas vezes você pode esperar que
std::size_t
represente o tamanho inteiro nativo não assinado na arquitetura atual. ou seja, 16-bit, 32-bit ou 64-bit mas é'nem sempre é o caso como apontado nos comentários a esta resposta.No que diz respeito a todos os outros tipos incorporados, depende realmente do compilador. Aqui's dois trechos extraídos do rascunho de trabalho atual do último padrão C++:
Se você quiser, pode afirmar estaticamente (tempo de compilação) o tamanho desses tipos fundamentais. Ele alertará as pessoas para pensar em portar o seu código se o tamanho das suposições mudar.
Como mencionado, o tamanho deve refletir a arquitetura atual. Você pode pegar um pico em
limits.h
se você quiser ver como seu compilador atual está lidando com as coisas.Como você mencionou - depende em grande parte do compilador e da plataforma. Para isso, verifique a norma ANSI, http://home.att.net/~jackklein/c/inttypes.html
Aqui está o do compilador da Microsoft: Faixas de Tipo de Dados.