
paulo1205
(usa Ubuntu)
Enviado em 07/03/2020 - 22:57h
O tamanho de cada tipo de dado é dependente da arquitetura do computador em questão. O padrão do C não tem regras muito rígidas com relação a esses tipos de dados, limitando-se, geralmente, a exigir apenas algumas características mínimas, o que permite a cada implementação escolher o que for melhor em termos de flexibilidade e desempenho para o sistema alvo.
Por definição,
sizeof(char) é sempre igual a
1, e um dado do tipo
char ocupa o menor tamanho de memória que o computador consiga endereçar, desde que esse bloco de memória tenha pelo menos 8 bits. Nos nossos PCs (e na maioria das máquinas de uso comum de que eu tenho notícia), um
char tem exatamente 8 bits e é realmente a menor quantidade de memória endereçável.
O tipo
int também não é definido de modo exato e universal, mas recomenda-se que ele tenha o tamanho de dados nativo do computador que ofereça o melhor desempenho, desde que possa representar valores com um mínimo de 16 bits. Em PCs que rodavam MS-DOS, 16 bits era justamente o tamanho nativo do maior dado inteiro que o processador conseguia manipular numa única operação. Outros computadores, cujo processador tinha operações com apenas 8 bits, precisavam sintetizar dados do tipo
int através da composição de múltiplos
bytes e decompor operações (tais como somas, subtrações e operações bit-a-bit) em sucessivas operações com as partes menores. Por outro lado, máquinas mais parrudas, como nossos PCs atuais, que possuem processadores e sistemas operacionais de 32 ou 64 bits, podem usar operações nativas com essa precisão a mais, sem perda de desempenho, e, por isso, geralmente preferem usá-la. Ao fazê-lo, continuam atendendo os requisitos mínimos do padrão do C.
Outros tipos, tais como
long int ou
short int, são ainda mais flexíveis. O padrão diz pouco sobre eles, especificando pouco mais do que a seguinte relação de tamanhos.
sizeof(char)<=sizeof(short int)<=sizeof(int)<=sizeof(long int)
(Continua...)
... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)