__int8, __int16, __int32, __int64
Específico da Microsoft
O Microsoft C/C++ tem suporte para tipos de inteiros dimensionados. Você pode declarar variáveis de inteiro de 8-, 16-, 32- ou 64 bits usando o especificador de tipo __intN
, em que N
é 8, 16, 32 ou 64.
O exemplo a seguir declara uma variável para cada um desses tipos de inteiros dimensionados:
__int8 nSmall; // Declares 8-bit integer
__int16 nMedium; // Declares 16-bit integer
__int32 nLarge; // Declares 32-bit integer
__int64 nHuge; // Declares 64-bit integer
Os tipos __int8
, __int16
e __int32
são sinônimos dos tipos ANSI que têm o mesmo tamanho e são úteis para gravar código portátil que se comporta de maneira idêntica em várias plataformas. O tipo de dados __int8
é sinônimo do tipo char
, __int16
é sinônimo do tipo short
e __int32
é sinônimo do tipo int
. O tipo __int64
é sinônimo do tipo long long
.
Para compatibilidade com versões anteriores, _int8
, _int16
, _int32
e _int64
são sinônimos para __int8
, __int16
, __int32
e __int64
, a menos que a opção do compilador /Za
(Desativar extensões de linguagem) esteja especificada.
Exemplo
O exemplo a seguir mostra que um parâmetro __intN
será promovido para int
:
// sized_int_types.cpp
#include <stdio.h>
void func(int i) {
printf_s("%s\n", __FUNCTION__);
}
int main()
{
__int8 i8 = 100;
func(i8); // no void func(__int8 i8) function
// __int8 will be promoted to int
}
func