__int8, __int16, __int32, __int64

Microsoft Specific

Microsoft C/C++ features support for sized integer types. You can declare 8-, 16-, 32-, or 64-bit integer variables by using the __intn type specifier, where n is 8, 16, 32, or 64.

The following example declares one variable for each of these types of sized integers:

__int8 nSmall;      // Declares 8-bit integer
__int16 nMedium;    // Declares 16-bit integer
__int32 nLarge;     // Declares 32-bit integer
__int64 nHuge;      // Declares 64-bit integer

The types __int8, __int16, and __int32 are synonyms for the ANSI types that have the same size, and are useful for writing portable code that behaves identically across multiple platforms. Note that the __int8 data type is synonymous with type char, __int16 is synonymous with type short, and __int32 is synonymous with type int. The __int64 type has no ANSI equivalent.

C++ Specific

Because __int8, __int16, and __int32 are considered synonyms by the compiler, care should be taken when using these types as arguments to overloaded function calls. The following C++ code generates a compiler error:

void MyFunc( __int8 ) {}
void MyFunc( char ) {}

void main()
{
    __int8 newVal;
    char MyChar;
    MyFunc( MyChar );    // Ambiguous function calls;
    MyFunc( newVal );    // char is synonymous with __int8.
}

END Microsoft and C++ Specific

See Also

Fundamental Types