__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. }